我在我的服务器上使用django-redis来减少对数据库的查询。我最近设置了一个lambda,我需要从redis缓存中访问相同的数据。但是如果我使用django-redis连接到redis缓存,如果我使用python库redis,似乎会提供不同的数据。
可以使用以下代码再现该行为。从Redis导入Redis。连接import HiredisParser from redis.连接导入ConnectionPool
connection_pool = ConnectionPool.from_url(url = 'redis://localhost:6379/1', parser_class=HiredisParser)
redis_client = redis.Redis(connection_pool=connection_pool)
redis_client.set('my_key', 'my_value')
# Access Redis data
redis_value = redis_client.get('my_key')
print(redis_value)
答案是b'my_value
from django_redis.cache import RedisCache
django_redis = RedisCache(server='redis://localhost:6379/1', params = {'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient'}})
print(django_redis.get('my_key'))
答案是None
我也试过在没有游泳池的情况下建立连接,但也没有用。
1条答案
按热度按时间ws51t4hk1#
django redis在创建键的时候会给它们添加一个前缀。前缀应该是存储的数据的版本。默认值为版本1。因此,如果您不提供版本,而您的密钥是
my_key
,则您的密钥将更改为:1:my_key