我正在开发一个网站来展示某种文章,就像stackoverflow一样。
每篇文章都包含标题,说明和一些经常更改的字段(例如view_count)。
该网站还支持游标分页(max_id,since_id),过滤(按类别,标签)。
我想使用Redis添加缓存层。我心中有一些选择:
使用zset存储前1000个蚁群ID列表。每个过滤器都有一个zset,例如articles:category:{category_id}
articles:tag:{tag_id}
。发布新文章时,每个zset都会更新。
使用哈希来存储每篇文章,例如article:{article_id}
直接在缓存中为每个视图更新view_count,并在某个时刻同步到db。
使用ZRANGEBYSCORE
实现游标分页(分数是发布时间戳)。
使用数据库进行过滤和分页,只返回id列表,redis中的缓存id列表,并设置一些TTL(10秒)。仍然使用哈希来缓存每篇文章,因此可以立即更新view_count。
使用redis缓存每个查询的acticle列表,将其序列化为json,并设置TTL。
我不知道女巫是一个更好的选择,性能和稳定性。谢谢你的帮助。