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'))