๊ธฐ๋ณธ ๊ตฌ์กฐ
default
๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ ์บ์ ์คํ ์ด๋ฅผ ์ง์ ํฉ๋๋ค. ํ์ :string
stores
์ฌ์ฉํ ์บ์ ์คํ ์ด๋ค์ ์ ์ํฉ๋๋ค. ํ์ :Record<string, BentoCacheStore>
๋จ์ผ ๋ ์ด์ด: ๋ฉ๋ชจ๋ฆฌ
๊ฐ์ฅ ๊ฐ๋จํ ์ค์ ์ผ๋ก, ๋ฉ๋ชจ๋ฆฌ์๋ง ์บ์๋ฅผ ์ ์ฅํฉ๋๋ค.๋จ์ : ์๋ฒ ์ฌ์์ ์ ์บ์ ์์ค, ๋ค์ค ์๋ฒ ๊ฐ ๊ณต์ ๋ถ๊ฐ
๋ค์ธต ์บ์: L1 (๋ฉ๋ชจ๋ฆฌ) + L2 (Redis)
L1์ ๋ฉ๋ชจ๋ฆฌ๋ก ๋น ๋ฅด๊ฒ, L2๋ Redis๋ก ์๊ตฌ์ ์ผ๋ก ์บ์ฑํฉ๋๋ค.- ์บ์ ์กฐํ ์ L1(๋ฉ๋ชจ๋ฆฌ) ๋จผ์ ํ์ธ
- L1์ ์์ผ๋ฉด L2(Redis) ํ์ธ
- L2์์ ์ฐพ์ผ๋ฉด L1์๋ ์ ์ฅ
- ๋ ๋ค ์์ผ๋ฉด ์๋ณธ ๋ฐ์ดํฐ ์กฐํ ํ L1, L2์ ์ ์ฅ
๋ถ์ฐ ์บ์: L1 + L2 + Bus
์ฌ๋ฌ ์๋ฒ ๊ฐ ์บ์ ๋ฌดํจํ๋ฅผ ๋๊ธฐํํฉ๋๋ค.- ํ ์๋ฒ์์ ์บ์๋ฅผ ๋ฌดํจํํ๋ฉด
- Bus๋ฅผ ํตํด ๋ค๋ฅธ ๋ชจ๋ ์๋ฒ์ ์ ํ
- ๋ชจ๋ ์๋ฒ์ L1 ์บ์๋ ์๋ ๋ฌดํจํ
ttl
์บ์์ ๊ธฐ๋ณธ ์ ํจ ์๊ฐ(Time To Live)์ ์ค์ ํฉ๋๋ค. ํ์ :string (์ ํ์ )
๊ธฐ๋ณธ๊ฐ: "5m" (5๋ถ)
"5s"- 5์ด"1m"- 1๋ถ"1h"- 1์๊ฐ"1d"- 1์ผ
prefix
๋ชจ๋ ์บ์ ํค์ ์ถ๊ฐ๋ ์ ๋์ฌ๋ฅผ ์ค์ ํฉ๋๋ค. ํ์ :string (์ ํ์ )
๊ธฐ๋ณธ๊ฐ: ""
๋๋ผ์ด๋ฒ ์ต์
memory ๋๋ผ์ด๋ฒ
๋ฉ๋ชจ๋ฆฌ์ ์บ์๋ฅผ ์ ์ฅํฉ๋๋ค.maxSize: ์ต๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ("50mb","100mb","1gb"๋ฑ)
redis ๋๋ผ์ด๋ฒ
Redis์ ์บ์๋ฅผ ์ ์ฅํฉ๋๋ค.redisBus ๋๋ผ์ด๋ฒ
Redis Pub/Sub์ ์ฌ์ฉํ์ฌ ์บ์ ๋ฌดํจํ๋ฅผ ์ ํํฉ๋๋ค.redisBus๋ redis ๋๋ผ์ด๋ฒ์ ๊ฐ์ ์ฐ๊ฒฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.์ค์ ์์
๋จ์ผ ์๋ฒ: ๋ฉ๋ชจ๋ฆฌ๋ง ์ฌ์ฉ
๋ค์ธต ์บ์: ๋ฉ๋ชจ๋ฆฌ + Redis
๋ถ์ฐ ํ๊ฒฝ: ๋ฉ๋ชจ๋ฆฌ + Redis + Bus
๋ค์ค ์คํ ์ด: ์ฉ๋๋ณ ๋ถ๋ฆฌ
์บ์ ์ฌ์ฉ
์ค์ ํ API์์@cache ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Redis ์ค์น
Redis๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ ์ค์น๊ฐ ํ์ํฉ๋๋ค.Docker
macOS
Linux
์ฐ๊ฒฐ ํ์ธ
์ฃผ์์ฌํญ
1. Redis ์ฐ๊ฒฐ ๊ด๋ฆฌ
2. ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ ์ค์
3. TTL ์ ํ
๋ค์ ๋จ๊ณ
์บ์ ์ค์ ์ ์๋ฃํ๋ค๋ฉด:- cache decorator - API์ ์บ์ฑ ์ ์ฉ
- cache-control - HTTP ์บ์ ์ ์ด
- cache strategies - ๊ณ ๊ธ ์บ์ฑ ์ ๋ต