我已經使用此link實現了redis,並且在此會話之後必須存儲在redis instaed db中。配置完成後,重新啓動我的應用程序我正在爲我的會話收到嗨錯誤。在Redis執行後Django會話停止工作
例如, 讓我們說IN函數A
我聲明瞭一個會話,並且當我從瀏覽器訪問另一個鏈接並嘗試在視圖中獲取同一會話時,會話不在其中。甚至不存在會話密鑰。 request.session.keys()爲空。
這裏是我的Redis的配置:
緩存服務器設置
REDIS_PROT = "redis://"
REDIS_HOST = "127.0.0.1"
REDIS_PORT = 6379
REDIS_DB = 0
REDIS_CACHE_SERVER = REDIS_PROT + REDIS_HOST + ":" + str(REDIS_PORT) + "/" + str(REDIS_DB)
REDIS_CACHEALOT_SERVER = REDIS_PROT + REDIS_HOST + ":" + str(REDIS_PORT) + "/" + str(REDIS_DB + 3)
DJANGO_REDIS_IGNORE_EXCEPTIONS = True
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": REDIS_CACHE_SERVER,
"OPTIONS": {
"PARSER_CLASS": "redis.connection.HiredisParser",
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"COMPRESS_MIN_LEN": 10,
"SOCKET_CONNECT_TIMEOUT": 5, # in seconds
"SOCKET_TIMEOUT": 5, # in seconds
}
},
"cachealot": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": REDIS_CACHEALOT_SERVER,
"OPTIONS": {
"PARSER_CLASS": "redis.connection.HiredisParser",
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"COMPRESS_MIN_LEN": 10,
"SOCKET_CONNECT_TIMEOUT": 5, # in seconds
"SOCKET_TIMEOUT": 5, # in seconds
}
}
}
# CacheALot service settings
CACHALOT_ENABLED = True
CACHALOT_CACHE = 'cachealot'
# Django Redis Session App Configuration
SESSION_REDIS_HOST = REDIS_HOST
SESSION_REDIS_PORT = REDIS_PORT
SESSION_REDIS_DB = REDIS_DB + 4
#SESSION_REDIS_PASSWORD = 'password'
SESSION_REDIS_PREFIX = 'session'
SESSION_ENGINE = 'redis_sessions.session'
# If you prefer domain socket connection, you can just add this line instead of SESSION_REDIS_HOST and SESSION_REDIS_PORT.
#SESSION_REDIS_UNIX_DOMAIN_SOCKET_PATH = '/var/run/redis/redis.sock'
# Celery Configurations
REDIS_CELERY_BROKER_SERVER = REDIS_PROT + REDIS_HOST + ":" + str(REDIS_PORT) + "/" + str(REDIS_DB + 1)
REDIS_CELERY_RESULT_SERVER = REDIS_PROT + REDIS_HOST + ":" + str(REDIS_PORT) + "/" + str(REDIS_DB + 2)
BROKER_URL = REDIS_CELERY_BROKER_SERVER
CELERY_RESULT_BACKEND = REDIS_CELERY_RESULT_SERVER
CELERY_ALWAYS_EAGER=False
任何想法,爲什麼我收到鍵錯誤Django的會話。
的問題,因爲它的會話沒有工作被下面的設置是在設置文件爲兒子設置爲我改變他們爲False,一切似乎是工作文件: 'CSRF_COOKIE_SECURE =真 SESSION_COOKIE_SECURE = TRUE; – user5594493
d idn't你知道你改變了默認[對於這些](https://docs.djangoproject.com/en/1.9/ref/settings/#csrf-cookie-secure)(這是'False');無論如何,我上面提出的解決方案(使用最小配置)仍然是正確的。如果你願意,你可以[參考這個問題](http://stackoverflow.com/q/22430903/484127)瞭解爲什麼這兩個設置會影響你的設置。 – tutuDajuju
'SECURE_PROXY_SSL_HEADER'在實際服務器上啓用,但在本地不起作用,因爲https不能在本地工作,我從本地刪除安全設置,但忘記了會話和cookie設置。無論如何,多謝告訴他們爲什麼發生衝突 – user5594493