django 对接 ssl redis , 以及redis集群模

2020-05-27  本文已影响0人  clever哲思

如有问题, 请留言交流

django CACHE使用 ssl redis

使用的时候将rediss://:yourpassword@yourhost:yourport/yourdb替换成你自己的redis地址
原理是 CONNECTION_POOL_KWARGS参数的 ssl_cert_reqs字段设置为None

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "rediss://:yourpassword@yourhost:yourport/yourdb",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "IGNORE_EXCEPTIONS": True,
            "CONNECTION_POOL_KWARGS": {"ssl_cert_reqs": None},
        },
    }
}

直接获取一个ssl redis客户端

使用的时候将rediss://:yourpassword@yourhost:yourport/yourdb替换成你自己的redis地址
然后可以直接操作获取的client

import redis
from rediscluster import RedisCluster

pool = redis.ConnectionPool.from_url("rediss://:yourpassword@yourhost:yourport/yourdb", ssl_cert_reqs=None)
client = redis.Redis(connection_pool=pool)

django 对接redis 集群模式

  1. 安装第三方包

pip install hypersRedisCluster

  1. 使用
    将 settings的 CACHE配置成下: LOCATION 字段是 集群的节点, 至少配置一个
    原理:"hypersRedisCluster.client.RedisClusterClient是一个实现了redis 集群模式的类
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": [{"host": "127.0.0.1", "port": "7000"}],
        "OPTIONS": {
            "CLIENT_CLASS": "hypersRedisCluster.client.RedisClusterClient",
            "IGNORE_EXCEPTIONS": True,
        },
    }
}
上一篇 下一篇

猜你喜欢

热点阅读