Redis 能干嘛

  • 记录帖子的点赞数、评论数和点击数 (hash)。
  • 记录用户的帖子 ID 列表 (排序),便于快速显示用户的帖子列表 (zset)。
  • 记录帖子的标题、摘要、作者和封面信息,用于列表页展示 (hash)。
  • 记录帖子的点赞用户 ID 列表,评论 ID 列表,用于显示和去重计数 (zset)。
  • 缓存近期热帖内容 (帖子内容空间占用比较大),减少数据库压力 (hash)。
  • 记录帖子的相关文章 ID,根据内容推荐相关帖子 (list)。
  • 如果帖子 ID 是整数自增的,可以使用 Redis 来分配帖子 ID(计数器)。
  • 收藏集和帖子之间的关系 (zset)。
  • 记录热榜帖子 ID 列表,总热榜和分类热榜 (zset)。
  • 缓存用户行为历史,进行恶意行为过滤 (zset,hash)。

用在哪些地方

string

  • 缓存数据

限流、计数器、分布式锁、session共享

限流、降级、熔断、隔离

hash

可以用来存用户信息,一个用户就只有一个键,但是用户有多个属性 用户主页访问量 组合查询等

list

基本用来做队列处理

  • lpush + lpop = Stack(栈)

  • lpush + rpop = Queue(队列)

  • lpush + ltrim = Capped Collection(有限集合)

  • lpush + brpop = Message Queue(消息队列)

set

赞,踩,标签,好友关系

Sset

有序集合有分数概念,所以可以用来做排行榜