商品维度计数

对商品喜欢数,评论数,鉴定数,浏览数进行计数

说起电商,肯定离不开商品,而附带商品有各种计数(喜欢数,评论数,鉴定数,浏览数,etc)

Redis的命令都是原子性的,你可以轻松地利用INCR,DECR等命令来计数。

采用Redis 的类型: Hash。

为product定义个key product:,为每种数值定义hashkey, 譬如喜欢数like_num

用户维度计数

对用户动态数、关注数、粉丝数、喜欢商品数、发帖数等计数

用户维度计数同商品维度计数都采用 Hash. 为User定义个key 为 user:

为每种数值定义hashkey, 譬如关注数follow

存储社交关系

譬如将用戶的好友/粉丝/关注,可以存在一个sorted set中,score可以是timestamp

默认集合按照score递增排序

这样求两个人的共同好友的操作,可能就只需要用求交集命令即可

用作缓存代替memcached

应用于商品列表,评论列表,@提示列表

相对memcached 简单的key-value存储来说,redis众多的数据结构(list,set,sorted set,hash,etc)

可以更方便cache各种业务数据,性能也不亚于memcached。

反spam系统

应用系统评论、发布商品、论坛发贴的spam控制

作为一个电商网站被各种spam攻击是少不免(垃圾评论、发布垃圾商品、广告、刷自家商品排名等)

针对这些spam制定一系列anti-spam规则,其中有些规则可以利用redis做实时分析

譬如:1分钟评论不得超过2次、5分钟评论少于5次等(更多机制/规则需要结合drools )

常规sorted set将最近一天用户操作记录起来

(为什么不全部记录?节省memory,全部操作会记录到log,后续利用hadoop进行更全面分析统计)

用户Timeline/Feeds

应用于关注的人、主题、品牌及专栏

redis在这边主要当作cache使用

用于记录用户刚刚喜欢的商品最新列表or排行榜 等业务场景

商品最新列表-sorted set结构呈现

排行榜-list数据结构呈现

消息通知

采用Hash结构对消息通知业务场景计数

将Redis用作消息队列

采用Redis的List数据结构实现分布式的消息队列