2012-07-23 97 views
3

我想将数据作为关键值存储在Redis中。使用有序集合作为列表不允许以键值格式存储数据。所以使用排序集。Redis:将排序集的值作为列表中的rpop获取

但是我希望数据能够在redis list rpop中工作。

redis的ZREM需要会员获得分数,加上它的排序列表,所以我可以存储在先来的方法?

或者我应该改变我使用的数据结构?

+0

我认为你需要在redis中混合使用数据类型来实现这一点。无论如何已发布一个可能的解决方案与排序集 – Tamil 2012-07-25 11:00:51

+0

新到stackoverflow,不知道我可以接受的答案。谢谢你让我知道这一点。 – amitchhajer 2012-07-25 13:30:34

+0

@泰米尔我到目前为止没有尝试过,一旦我愿意,将会肯定地发表评论。 – amitchhajer 2012-07-25 14:19:37

回答

1

这是一个解决方案,但你应该在它的效率决定;)

ZREVRANGEBYSCORE key +inf -inf LIMIT 0 1 

您可以使用Redis的lists和存储数据的

key[FS]value 

防爆要做的一件可能的事情:名称: xxx

所以,一旦你弹出你的数据,你可以手动分割它们在客户端

+1

它不会从集合中删除成员。我们可以使用zrem手动删除它,但它不会以高并发性工作,因为并行请求将获得与zrevrangebyscore相同的成员。 – 2013-11-13 10:14:38

+0

我有同样的要求,任何解决方案,你Bogdan? – 2017-05-22 09:12:04