django - 缓存值未出现在 Redis 中

标签 django caching redis django-redis

我已经在 Django 中将 Redis 设置为缓存,设置如下:

CACHES = {
    'default': {
        'BACKEND': 'redis_cache.RedisCache',
        'LOCATION': 'localhost:6379',
        'OPTIONS': {
            'PICKLE_VERSION': 1,
        },
    },
}

我正在试验它(Redis 的新手,想更好地理解它)。所以,我进入我的 Django shell,然后:

from django.core.cache import cache
cache.set('asdf', 2)
cache.get('asdf')  # Returns 2

然后我进入 redis-cli,我希望在其中看到值,但这些都没有显示任何值:

KEYS *
GET *
GET 'asdf'

这是怎么回事?

最佳答案

Redis 默认有 16 个数据库。正如@Bernhard 在他的评论中所说,您可以看到每个键有多少个:

INFO KEYSPACE

在我的案例中返回了:

# Keyspace
db0:keys=1,expires=0,avg_ttl=0
db1:keys=2,expires=2,avg_ttl=504748260

并且您可以SELECT要检查的数据库:

SELECT 1

在这一点上,果然,我可以看到我期望的键:

KEYS *
1) ":1:asdf"
2) ":1:django.contrib.sessions.cacheg2l0bo9z88z8bn4q2ep0andjgo8zrzzk"

关于django - 缓存值未出现在 Redis 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34192218/

相关文章:

python - Django-cas - 登录成功后出现403错误

arrays - 如何将键值对象插入redis中的lua表

swift - HanekeSwift 无法分配内存

redis - 通过字符串匹配批量删除 Sidekiq 作业

amazon-web-services - 在 Elasticache (Redis) 中分区数据的正确方法

python - 如何检查数据库中是否存在对象,然后将其插入到django中的表单中

django - "The connection was reset"在本地主机 :8000 using django and docker

Django 表单有选择但也有自由文本选项?

进入数据库前的Java缓存数据

c# - 这是为我的屏幕抓取器缓存页面的糟糕方法吗?