Elasic Cache for Redis

バージョン

1
2
3
4
5
$ redis-cli --version
redis-cli 5.0.7

$ redis-server -v
Redis server v=5.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=66bd629f924ac924

接続:

1
REDIS_URL=redis://mycloud-stage-redis-nc.sigrvp.ng.0001.apne1.cache.amazonaws.com:6379/0
1
2
3
$ export $(cat .env|xargs)
$ redis-cli -u $REDIS_URL PING
PONG

Python

クラスターモードへの接続

1
2
3
4
5
6
7
8
9
import logging
from redis.cluster import RedisCluster

ENDPOINT = "mycloud-stage-redis-test.sigrvp.clustercfg.apne1.cache.amazonaws.com"
logging.basicConfig(level=logging.INFO)
redis = RedisCluster(host=ENDPOINT, port="6379")

if redis.ping():
    logging.info("Connected to Redis")

django-redis:

app/reids.py:

1
2
3
4
5
6
7
8
from django_redis.client import DefaultClient
from redis.cluster import RedisCluster


class RedisClusterClient(DefaultClient):
    def connect(self, index):
        url = self._server[index]
        return RedisCluster.from_url(url)

app/settings.py:

1
2
3
4
5
6
7
8
9
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://youcloud-stage-redis-test.sigrvp.clustercfg.apne1.cache.amazonaws.com:6379/0",
        "OPTIONS": {
            "CLIENT_CLASS": "app.redis.RedisClusterClient",
        },
    }
}

セキュリティグループ設定

  • TCP6379 を相手のサーバーが所属するネットワークに対して許可すること

AOF(Append-Only File)

Data Tiering

クラスターモード