Configuration et usage de REDIS

Présentation de REDIS

Redis (REmote DIctionary Server) est une base de données NoSQL clé-valeur extrêmement rapide, principalement utilisée comme cache, file d’attente et moteur de messages. Elle fonctionne en mémoire (RAM), ce qui lui permet d’offrir des performances bien supérieures aux bases de données traditionnelles pour certaines tâches.

Dans le cadre de Pod, REDIS est utilisé comme :

A l’heure actuelle, c’est une brique indispensable au fonctionnement de Pod.

Configuration de REDIS pour Pod

Liste des bases utiles

Identifiant de la base Commentaires
2 Base pour le plugin select2 (utile pour les listes de sélection)
3 Base pour le backend
4 Base pour les sessions
5 Base pour les encodages et transcodages
6 Base pour le xAPI

Configuration effective

La configuration se réalise dans votre custom/settings_local.py :

# Pour utiliser l'encodage traditionnel déporté
CELERY_TO_ENCODE = True
# URL du broker REDIS
CELERY_BROKER_URL = "redis://127.0.0.1:6379/5"
# Permet de ne traiter qu'une tâche à la fois
CELERY_TASK_ACKS_LATE = True
# Gestion des caches
CACHES = {
  'default': {
    'BACKEND': 'django_redis.cache.RedisCache',
    'LOCATION': 'redis://127.0.0.1:6379/3',
    'OPTIONS': {
      'CLIENT_CLASS': 'django_redis.client.DefaultClient',
    },
  },
  'select2': {
    'BACKEND': 'django_redis.cache.RedisCache',
    'LOCATION': 'redis://127.0.0.1:6379/2',
    'OPTIONS': {
      'CLIENT_CLASS': 'django_redis.client.DefaultClient',
    },
  },
}
SESSION_ENGINE = 'redis_sessions.session'
SESSION_REDIS = {
  'host': '127.0.0.1',
  'port': 6379,
  'db': 4,
  'prefix': 'session',
  'socket_timeout': 1,
  'retry_on_timeout': False
}
# Indiquer à select2 la configuration de cache à utiliser
SELECT2_CACHE_BACKEND = "select2"

⚠️ Selon votre architecture, pensez à remplacer 127.0.0.1 par l’adresse IP du serveur REDIS, cf. la documentation d’installation.