缓存值未出现在 Redis 中

mli*_*ner 4 django caching redis django-redis

我已经在 Django 中将 Redis 设置为我的缓存,并具有以下设置:

CACHES = {
    'default': {
        'BACKEND': 'redis_cache.RedisCache',
        'LOCATION': 'localhost:6379',
        'OPTIONS': {
            'PICKLE_VERSION': 1,
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

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

from django.core.cache import cache
cache.set('asdf', 2)
cache.get('asdf')  # Returns 2
Run Code Online (Sandbox Code Playgroud)

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

KEYS *
GET *
GET 'asdf'
Run Code Online (Sandbox Code Playgroud)

那是怎么回事?

mli*_*ner 6

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

INFO KEYSPACE
Run Code Online (Sandbox Code Playgroud)

在我的情况下返回:

# Keyspace
db0:keys=1,expires=0,avg_ttl=0
db1:keys=2,expires=2,avg_ttl=504748260
Run Code Online (Sandbox Code Playgroud)

您可以SELECT使用要检查的数据库:

SELECT 1
Run Code Online (Sandbox Code Playgroud)

此时,果然,我可以看到我期望的键:

KEYS *
1) ":1:asdf"
2) ":1:django.contrib.sessions.cacheg2l0bo9z88z8bn4q2ep0andjgo8zrzzk"
Run Code Online (Sandbox Code Playgroud)