martinrusev / django-redis-sessions

Session backend for Django that stores sessions in a Redis database
BSD 3-Clause "New" or "Revised" License
495 stars 106 forks source link

django connects redis success but doesn't have any data in redis #66

Closed Kesslarr closed 3 years ago

Kesslarr commented 3 years ago

Hi there, I am a newbie in python, I want to use redis to save django's session. I wrote these in my setting.py

MIDDLEWARE = [
    #add
    'django.middleware.cache.UpdateCacheMiddleware', 
    #

    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',

    #add
    'django.middleware.cache.FetchFromCacheMiddleware', 
    #
]

SESSION_ENGINE = 'redis_sessions.session'

SESSION_REDIS = {
    'host' : 'localhost',
    'port' : 6379,
    'db' : 0,
    'password' : '',
    'prefix' : 'session',
    'socket_timeout' : 1
}

after this, I had try these command

python manage.py shell

In [1]: from django.core.cache import cache

In [2]: cache.set('v','555',60*10)
Out[2]: True

In [3]: cache.has_key('v')
Out[3]: 1

In [4]: cache.get('v')
Out[4]: '555'

it seems I already have connected redis , but when I try to select keys in redis, it's empty.

127.0.0.1:6379> keys *
(empty list or set)

Does anyone know how to solve this problem? Thanks, Kase