Redis-py 是否支持 unicode 和 utf-8,它是如何工作的



我是redis的新手,我想知道redis-py是否支持Unicode和utf-8。
我想我们也可以编码和解码,但我不确定如何编码。
假设我在 redis 中输入一个值,如下所示:"ü"。
然后我会得到这个输出:"\xc3\xbc"

有人可以解释我这个过程吗

谢谢

Redis(数据存储)存储字节,而不是 unicode。

在 python redis 模块中,构造函数redis.Redisredis.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, ...)

最新更新