坑——python的redis库的decode_responses设置

python的redis库查询返回的值默认是返回字节串,可以在redis.Redis()方法中通过设置decode_responses参数,让返回值直接是字符串;

查询返回字节串是因为Redis()方法中decode_responses默认值是False:

设置decode_responses为True就可以直接返回字符串了:

import redis

conn = redis.Redis(host="192.168.1.30", port=6379, password="123123", db=6)
print(conn.set('a', '123'))
print(conn.get('a'))
print(conn.delete('a'))

conn = redis.Redis(host="192.168.1.30", port=6379, password="123123", db=6,
                   decode_responses=True)
print(conn.set('a', '456'))
print(conn.get('a'))
print(conn.delete('a'))

运行结果:

然而用redis.ConnectionPool连接池的时候又不好用了:

原来当使用连接池的时候需要在ConnectionPool()方法里设置decode_responses了,而不是在Redis()方法里,Redis()里的设置会失效;

pool = redis.ConnectionPool(host="192.168.1.30", port=6379, password="123123", db=6,
                            decode_responses=True)
conn = redis.Redis(connection_pool=pool)
print(conn.set('b', '234'))
print(conn.get('b'))
print(conn.delete('b'))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值