如果您使用的是第三方库(例如)django-redis
,则可能需要指定一个自定义的ConnectionFactory
:
class DecodeConnectionFactory(redis_cache.pool.ConnectionFactory):
def get_connection(self, params):
params['decode_responses'] = True
return super(DecodeConnectionFactory, self).get_connection(self, params)
假设您使用的是redis- py,最好传递str
而不是传递unicode
给Redis,否则Redis会自动将其编码为*set
命令,通常使用UTF-8编码。对于*get
命令,Redis不了解值的形式类型,而只需要str
直接返回值即可。
因此,正如Denis所说,将对象存储到Redis的方式至关重要。您需要转换值以str
使Redis层对您透明。
另外,将默认编码设置为UTF-8,而不要使用ascii