Redis实战(五) 聊聊Redis使用场景

发表于 2016-11-21

文章目录

  1. 1. 使用场景说明
  1. 1.1. 计数器
  2. 1.2. 排行榜
  3. 1.3. 用于存储时间戳
  4. 1.4. 记录用户判定信息
  5. 1.5. 社交列表
  6. 1.6. 缓存
  7. 1.7. 队列
  8. 1.8. 会话缓存
  1. 2. 业务使用方式

随着数据量的增长,MySQL已经满足不了大型互联网类应用的需求,因此,Redis作为内存数据库,很好的作为其架构上的补充。在某些场景下,可以充分的利用Redis的特性,大大提高效率。

使用场景说明

计数器

数据统计的需求非常普遍,通过原子递增保持计数。例如,点赞数、收藏数、分享数等。

排行榜

排行榜按照得分进行排序,例如,展示最近、最热、点击率最高、活跃度最高等等条件的top list。

用于存储时间戳

类似排行榜,使用redis的zset用于存储时间戳,时间会不断变化。例如,按照用户关注用户的最新动态列表。

记录用户判定信息

记录用户判定信息的需求也非常普遍,可以知道一个用户是否进行了某个操作。例如,用户是否点赞、用户是否收藏、用户是否分享等。

社交列表

社交属性相关的列表信息,例如,用户点赞列表、用户收藏列表、用户关注列表等。

缓存

缓存一些热点数据,例如,PC版本文件更新内容、资讯标签和分类信息、生日祝福寿星列表。

队列

Redis能作为一个很好的消息队列来使用,通过list的lpop及lpush接口进行队列的写入和消费,本身性能较好能解决大部分问题。但是,不提倡使用,更加建议使用rabbitmq等服务,作为消息中间件。

会话缓存

使用Redis进行会话缓存。例如,将web session存放在Redis中。

业务使用方式

  • String(字符串): 应用数, 资讯数等, (避免了select count(*) from …)
  • Hash(哈希表): 用户粉丝列表, 用户点赞列表, 用户收藏列表, 用户关注列表等。
  • List(列表):消息队列, push/sub提醒。
  • SortedSet(有序集合):热门列表, 最新动态列表, TopN, 自动排序。