Redis


๐Ÿ’ก Redis

Redis๋Š” Remote Dictionary Server์˜ ์•ฝ์ž๋กœ์„œ, โ€œํ‚ค-๊ฐ’โ€ ๊ตฌ์กฐ์˜ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ

์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ๋ฐ˜์˜ ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ


์˜ค๋Š˜์€ DB ์ ‘๊ทผ์„ ์ตœ๋Œ€ํ•œ ์ค„์—ฌ์„œ ์„ฑ๋Šฅ์„ ๋†’์—ฌ๋ณด๋Š”๊ฑธ ์—ฐ์Šตํ•ด๋ณด๊ณ  ์‹ถ์–ด์„œ Redis๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

์šฐ์„  redis์™€ django-redis ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๊ณ , ๊ธฐ๋ณธ ์…‹ํŒ…์„ ํ•ด์ฃผ์—ˆ๋‹ค.

#-- settings.py --#
CACHE = {
    "default" : {
        "BACKEND" : "django_redis.cache.RedisCache",
        "LOCATION" : "redis://127.0.0.1:6379/1",
        "OPTION" : {
            "CLIENT_CLASS" : "django_redis.client.DefaultClient",
        }
    }
}

SESSION_ENGINE = "django.contrib.sessions.backends.cache"

SESSION_CACHE_ALIAS = "default"

CACHE_TTL = 60 * 1 #์บ์‹œ ๋ฐ์ดํ„ฐ ์œ ์ง€ ์‹œ๊ฐ„.

---

#-- views.py --#
cache_username = [ i.username for i in self.get_queryset() ]

# ์บ์‹œ์— ๋ฐ์ดํ„ฐ ์ €์žฅ
cache.set('all_username', cache_username, CACHE_TTL)

# ์บ์‹œ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ
all_username = cache.get('all_username')

ํšŒ์›๊ฐ€์ž… API๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์•„์ฃผ ์กฐ๊ธˆ ๋น ๋ฅด๊ฒŒ ์ฐํžˆ๊ธด ์ฐํ˜”๋‹ค.

ํ•˜์ง€๋งŒ redis-cli์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ์ •์ƒ์ ์œผ๋กœ ๋œ๊ฑด์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค.