如何在redis中创建哈希队列?

时间:2017-09-28 08:05:58

标签: redis queue

要使用LPUSHLTRIM在redis中创建队列,在python中我这样做:

if not str(key) in r.lrange('myq', 0 , -1):
    r.lpush("myq" , key)
    r.ltrim("myq" , 0, MYQ_LENGTH)

但是如何在redis队列中存储key:value对?

假设KeysValues可以任何字符串(因此无法使用:拆分),推送的最佳方法是什么? p>

Key1:Val1
Key2:Val2
Key3:Val3
Key4:Val4

将4个项目排入队列,当第5对被推入队列时,会弹出Key1:VAl1

1 个答案:

答案 0 :(得分:2)

您可以使用MessagePack或JSON之类的东西对字符串进行编码,并将其推送到列表中。弹出后,在客户端执行匹配解码(或编写服务器端的Lua脚本)。

伪代码示例:

r.lpush("myq", "{\"key1\":\"val1\"}")
...
ele = r.lpop("myq")
hash = JSON.decode(ele)