Redis哨兵模式部署

版本

1
2
3
4
5
6
celery                4.4.2
django 1.11.29
django-redis 4.5.0
django-redis-sentinel 1.0
redis 3.2.0
python 2.7

工程关键代码

Django setting文件

Cache配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "mymaster/10.211.55.4:26379/2",
"OPTIONS": {
"CLIENT_CLASS": "django_redis_sentinel.SentinelClient",
"CONNECTION_POOL_KWARGS": {
"max_connections": 100
}
}
},
"trace": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "mymaster/10.211.55.4:26379/3",
"OPTIONS": {
"CLIENT_CLASS": "django_redis_sentinel.SentinelClient",
"CONNECTION_POOL_KWARGS": {
"max_connections": 100
}
}
}
}

Celery配置

1
2
3
4
5
6
7
8
9
10
BROKER_BACKEND = 'redis'
MASTER_NAME = 'mymaster'
CELERY_BROKER_URL = 'sentinel://10.211.55.4:26379/0'
CELERY_BROKER_TRANSPORT_OPTIONS = {'master_name': MASTER_NAME}
CELERY_RESULT_BACKEND = 'sentinel://10.211.55.4:26379/1'
CELERY_RESULT_BACKEND_TRANSPORT_OPTIONS = {'master_name': MASTER_NAME}
CELERY_RESULT_EXPIRES = 10
CELERY_MAX_CACHED_RESULTS = 2
CELERY_TIMEZONE = 'Asia/Shanghai'
CELERY_ENABLE_UTC = True

Django Redis使用

使用Cache

1
2
3
4
from django.core.cache import caches
cache1 = caches['trace']
cache1.set('cache_default', dict(name='cache_default'), 60)
cache1.get("cache_default")

使用Celery

1
2
celery -A LearningPlatformPy2 worker --loglevel=info
celery -A LearningPlatformPy2 beat --loglevel=info

关键命令

1
2
3
4
5
6
7
8
# 客户端访问redis服务
redis-cli -h 10.211.55.4 -p 6379

# 启动指定配置文件的redis服务
redis-server redis.conf

# 停止指定的redis服务
redis-cli -h 10.211.55.4 -p 6379 shutdown