在redis中,如何根据插入顺序获取键的降序?

In redis,how to get the keys descending order based on insertion order?

我正在为社交网络实现一个提要,新上传的 post 应该首先提供,因此 on.I 使用 post 的哈希值作为键,posts 因为 values.I 需要 "newest first order" 中的 posts。怎么办? 我的想法是

  1. 将post和时间戳存储为关键字
  2. 获取所有密钥和时间戳
  3. 按降序排列时间戳
  4. 然后使用相应的键获取最新图像

问题1:但是这种做法是不是good.How可以做到的? EDIT:Question2:Please 告诉我你用什么算法来服务 feed.If feed 是基于 "newest-first" 的所有用户通用的,如何实现它? 如果问题很愚蠢,这是我第一次 backend.Please。 谢谢。

以下三个选项供您选择:

使用排序集,使用时间戳作为分数,post-哈希作为值。 post-散列也是存储实际 post 的散列中的键。涉及命令:ZADD、HSET、ZREVRANGEBYSCORE、HGET。

使用排序集,使用时间戳作为分数,post 以元数据作为值。确保 "post with metadata" 是唯一的,您可以包含时间戳和用户来实现这一点。这将有更好的性能,但如果你必须找到一个特定的 post,它会变得有点困难。涉及的命令:ZADD、ZREVRANGEBYSCORE、ZRANGEBYSCORE。

使用 Redis 流。如果你想要一个独立于客户端时间的统一插入顺序,Redis 可以为你设置时间戳。但是,无法修改流条目,因此要么用户无法编辑 post,要么每当他们编辑时 post 都会作为新条目出现。涉及的命令:XADD、XREVRANGE、XDEL。

参见: