在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。怎么办?
我的想法是
- 将post和时间戳存储为关键字
- 获取所有密钥和时间戳
- 按降序排列时间戳
- 然后使用相应的键获取最新图像
问题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。
参见:
我正在为社交网络实现一个提要,新上传的 post 应该首先提供,因此 on.I 使用 post 的哈希值作为键,posts 因为 values.I 需要 "newest first order" 中的 posts。怎么办? 我的想法是
- 将post和时间戳存储为关键字
- 获取所有密钥和时间戳
- 按降序排列时间戳
- 然后使用相应的键获取最新图像
问题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。
参见: