django-redis和redis返回不同的结果

ki1q1bka  于 2023-04-29  发布在  Redis
关注(0)|答案(1)|浏览(163)

我在我的服务器上使用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
我也试过在没有游泳池的情况下建立连接,但也没有用。

ws51t4hk

ws51t4hk1#

django redis在创建键的时候会给它们添加一个前缀。前缀应该是存储的数据的版本。默认值为版本1。因此,如果您不提供版本,而您的密钥是my_key,则您的密钥将更改为:1:my_key

相关问题