复述,在PHP中的实际应用场景

  介绍

本篇内容介绍了“复述,在PHP中的实际应用场景”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

<强>商品维度计数

对商品喜欢数,评论数,鉴定数,浏览数进行计数   
说起电商,肯定离不开商品,而附带商品有各种计数(喜欢数,评论数,鉴定数,浏览数,等等)   
复述的命令都是原子性的,你可以轻松地利用增加,12月等命令来计数。   
采用复述的类型:散列。如果你对复述,数据类型不太熟悉,可以参考   
  http://redis.io/topics/data-types-intro   
为产品定义个关键产品:,为每种数值定义hashkey,譬如喜欢数like_num
复述→美元hSet(& # 39;产品:123 & # 39;,,& # 39;like_num  & # 39;,, 5);,,//,添加,id为123的商品,like_num 为5
  ,,
  复述→美元hIncrBy(& # 39;产品:123 & # 39;,,& # 39;like_num  & # 39;,, 1),,,//,添加,id为123的商品like_num  + 1
  ,
  复述→美元hGetAll(& # 39;产品:123 & # 39;);,//,获取id为123的商品相关信息
  阵列(& # 39;like_num  & # 39;=祝辞,1)

<强>用户维度计数

对用户动态数,关注数,粉丝数,喜欢商品数,发帖数等计数   
用户维度计数同商品维度计数都采用散列。为用户定义个关键用户为:   
为每种数值定义hashkey,譬如关注数按照
复述→美元hSet(& # 39;用户:100000 & # 39;,,& # 39;follow  & # 39;,, 5);,,//,添加uid为10000的用户follow 为5
  ,,
  复述→美元hIncrBy(& # 39;用户:100000 & # 39;,,& # 39;follow  & # 39;,, 1),,,//,更新uid为10000的用户follow  + 1
  ,
  复述→美元hGetAll(& # 39;用户:100000 & # 39;);,//,获取uid为10000的用户
  阵列(& # 39;like_num  & # 39;=祝辞,1)

<强>存储社交关系

譬如将用戶的好友/粉丝/关注,可以存在一个分类中,分数可以是时间戳   
默认集合按照得分递增排序   
这样求两个人的共同好友的操作,可能就只需要用求交集命令即可
复述→美元zAdd(& # 39;用户:1000:遵循# 39;,,1463557212,,& # 39;1001 & # 39;);
  ,
  # uid为1000用户关注uid为1001,,,分数值设定时间戳1463557212
  ,
  复述→美元zAdd(& # 39;用户:1000:遵循# 39;,,1463557333,,& # 39;1002 & # 39;);
  ,
  复述→美元zAdd(& # 39;用户:2000:遵循# 39;,,1463577568,,& # 39;1001 & # 39;);
  ,
  复述→美元zAdd(& # 39;用户:2000:遵循# 39;,,1463896964,,& # 39;1003 & # 39;);
  ,,
  # uid为2000用户关注1001和1003用户,,,分数值设定时间戳
  ,
  复述→美元zInter (& # 39; com_fllow: 1000:2000& # 39;,,数组(& # 39;用户:1000:遵循# 39;,,& # 39;用户:2000:遵循# 39;));
  ,
  #对集合& # 39;用户:1000:遵循# 39;和& # 39;用户:2000:遵循# 39;取交集& # 39;com_fllow: 1000:2000& # 39;
  #获得共同关注的uid
  ,
  复述→美元zRange (& # 39; com_fllow: 1000:2000& # 39;(0, 1),,//,获取全部集合元素
  #阵列(& # 39;10001 & # 39;& # 39;10002 & # 39;)

<强>用作缓存代替memcached

应用于商品列表、评论列表,@提示列表   
相对memcached简单的键值存储来说,复述,众多的数据结构(列表、设置、排序、散列、等)   
可以更方便缓存各种业务数据,性能也不亚于memcached。
注意:,RPUSH  pagewviews.user:, EXPIRE  pagewviews.user:, 60,//注意要update 超时

<强>反垃圾邮件系统

应用系统评论,发布商品,论坛发贴的垃圾邮件控制   
作为一个电商网站被各种垃圾邮件攻击是少不免(垃圾评论,发布垃圾商品,广告,刷自家商品排名等)   
针对这些垃圾制定一系列反垃圾邮件规则,其中有些规则可以利用复述,做实时分析   
譬如:1分钟评论不得超过2次,5分钟评论少于5次等(更多机制/规则需要结合drools)   
常规排序设置将最近一天用户操作记录起来   
(为什么不全部记录?节省记忆,全部操作会记录到日志,后续利用hadoop进行更全面分析统计)
 #获取5秒内操作记录
  $ res =,复述,→美元zRangeByScore(& # 39;用户:1000:评论# 39;,,时间(),安康;5,时间());
  #判断5秒内不能评论
  if  (! $ res), {
  ,,,复述,→美元zAdd(& # 39;用户:1000:评论# 39;,,时间(),& # 39;评论内容& # 39;);
  },{else 
  ,,,echo  & # 39; 5秒之内不能评论& # 39;;
  }
  ,
  # 5秒内评论不得超过2次
  如果(复述→美元zRangeByScore(& # 39;用户:1000:评论# 39;,时间()5,,时间())==1)
  echo  & # 39; 5秒之内不能评论2次& # 39;;
  ,
  # 5秒内评论不得少于2次
  ,
  如果(count($复述→zRangeByScore(& # 39;用户:1000:评论# 39;,时间()5,,时间()))& lt; 2)
  echo  & # 39; 5秒之内不能评论2次& # 39;;

复述,在PHP中的实际应用场景