【问题标题】:Cache values not appearing in Redis缓存值未出现在 Redis 中
【发布时间】:2016-03-15 12:25:20
【问题描述】:

我在 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'

这是怎么回事?

【问题讨论】:

  • 您是否确保在 CLI 中使用 SELECT 连接到正确的数据库? INFO KEYSPACE 应该会显示所有数据库中的键数。
  • 是的!就是这样,谢谢!

标签: django caching redis django-redis


【解决方案1】:

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"

【讨论】:

    猜你喜欢
    • 2015-11-10
    • 2017-01-24
    • 2018-01-09
    • 2017-11-22
    • 2014-05-01
    • 2013-07-08
    • 2015-11-04
    • 1970-01-01
    • 2017-11-01
    相关资源
    最近更新 更多