Django 调用redis list 类型

博客介绍了Redis中conn.blpop操作,若对应key有value则弹出返回,取后即删;无value则阻塞,直到存入数据。可设超时时间,60s无数据存入返回None。还提及队列顺序,先进先出用rpush存,先进后出用lpush存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 建立连接
conn = get_redis_connection('default')
# 存
conn.rpush(key_name, str({"api_key":"1234"})) # 将 {"api_key":"1234"}这个字典作为value 存入键为key_name的列表中
#即:key_name:[{"api_key":"1234"},{"two_key":"4567"},...]
# 取
data = conn.blpop(key_name) # data是一个二进制元组,(b'key_name, b'{"api_key":"1234"})
#所以如果想得到value值,得先进行解包
key_name, value_dict= data
value_dict = b'{"api_key":"1234"}
#需要强调一下,任何从redis取出来的数据,都是二进制,要先进行二进制解码
value_dict  = value_dict.decode("UTF-8")
#解码后value_dict的类型是string, 如果想要得到其中字典的值,就需要进行转换
value_dict = eval(value_dict) # eval可以智能地根据字符串中的数据类型进行转换。

再说一下conn.blpop
它是在redis中对应的key,如果有value,就弹出来并返回(就是redis中取出来后就删了,再想去取是取不到的,有一个弹一个)。
如果没有value,那么就会阻塞,直到有人往里面存数据,即存即取。
可以设置超时时间,在60s后还是没有等到数据存入,那么就返回None.

data = conn.blpop(key_name,timeout=60)

对于队列顺序,如果需求是先进先出,使用rpush去存。
如果需求是先进后出,使用lpush去存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值