为了在redis中使用LPUSH和LTRIM创建队列,我在python中这样做:
if not str(key) in r.lrange('myq', 0 , -1):
r.lpush("myq" , key)
r.ltrim("myq" , 0, MYQ_LENGTH)但是如何将键:值对存储在redis队列中呢?
假设Keys和Values可以是任何字符串(因此不能使用:拆分),那么最好的推送方式是什么?
Key1:Val1
Key2:Val2
Key3:Val3
Key4:Val4进入队列4项,当第5对被推入队列时,它会弹出Key1:VAl1
发布于 2017-09-28 16:33:47
您可以使用类似于MessagePack或JSON的内容对字符串进行编码,并将其推入列表中。在pop上,在客户机中执行匹配的解码(或者编写一个用于服务器端的Lua脚本)。
伪代码示例:
r.lpush("myq", "{\"key1\":\"val1\"}")
...
ele = r.lpop("myq")
hash = JSON.decode(ele)https://stackoverflow.com/questions/46464026
复制相似问题