Cache site with Redis

This commit is contained in:
Joakim Hellsén 2024-01-30 03:12:04 +01:00
commit 32e9ccb413
3 changed files with 62 additions and 9 deletions

37
docker-compose.yaml Normal file
View file

@ -0,0 +1,37 @@
services:
# Postgres - Database
feedvault_postgres:
container_name: feedvault_postgres
image: postgres:16
user: "1000:1000"
ports:
- 5434:5432 # Host:Container
restart: always
environment:
- POSTGRES_USER=${PGUSER}
- POSTGRES_PASSWORD=${PGPASSWORD}
- POSTGRES_DB=${PGDATABASE}
volumes:
- /mnt/Fourteen/Docker/FeedVault/Postgres:/var/lib/postgresql/data
networks:
- db
redis:
container_name: feedvault_redis
image: redis:7
restart: always
user: "1000:1000"
ports:
- 6380:6379 # Host:Container
environment:
- REDIS_PASSWORD=${REDIS_PASSWORD}
command: /bin/sh -c 'redis-server --requirepass ${REDIS_PASSWORD} --appendonly yes --maxmemory 4gb --maxmemory-policy allkeys-lru'
networks:
- redis
volumes:
- /mnt/Fourteen/Docker/FeedVault/Redis:/data
networks:
db:
driver: bridge
redis:
driver: bridge

View file

@ -112,7 +112,9 @@ MIDDLEWARE: list[str] = [
"whitenoise.middleware.WhiteNoiseMiddleware",
"debug_toolbar.middleware.DebugToolbarMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.cache.UpdateCacheMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.cache.FetchFromCacheMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
@ -167,3 +169,17 @@ STORAGES: dict[str, dict[str, str]] = {
# Our site ID
SITE_ID = 1
REDIS_PASSWORD: str = os.getenv(key="REDIS_PASSWORD", default="")
REDIS_HOST: str = os.getenv(key="REDIS_HOST", default="192.168.1.2")
REDIS_PORT: str = os.getenv(key="REDIS_PORT", default="6379")
CACHES: dict[str, dict[str, str]] = {
"default": {
"BACKEND": "django.core.cache.backends.redis.RedisCache",
"LOCATION": f"redis://:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}/0",
},
}
CACHE_MIDDLEWARE_ALIAS = "default"
CACHE_MIDDLEWARE_SECONDS = 600 # 10 minutes
CACHE_MIDDLEWARE_KEY_PREFIX = "feedvault"