我是redis的新手,我想知道redis-py是否支持Unicode和utf-8。
我想我们也可以编码和解码,但我不确定如何编码。
假设我在 redis 中输入一个值,如下所示:"ü"。
然后我会得到这个输出:"\xc3\xbc"
有人可以解释我这个过程吗
谢谢
Redis(数据存储)存储字节,而不是 unicode。
在 python redis 模块中,构造函数redis.Redis
和redis.StrictRedis
有一个 encoding
参数,默认为 utf-8
。
因此,您的"ü"在存储在 redis 中之前先用 utf-8 编码。当你稍后在python中检索它时,你只会得到编码的字节。
>>> print(b'xc3xbc'.decode('utf-8'))
ü
redis.connection.Encoder
可以选择将decode_responses
设置为True
。根据您设置连接的方式,它可能是直通参数。例如,在我们的例子中,我们使用连接池,以下完成工作:
client = Redis.from_url(..., decode_responses=True, ...)