Skip to content

About Redis

์„œ๋ฏผ์ • edited this page Nov 2, 2021 · 2 revisions

Redis๋ž€?

1. NOSQL์ด๋ž€?

RDBMS๋Š” ๋ณดํ†ต โ€œ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šคโ€๋ผ๊ณ  ํ•˜๋ฉฐ ๋ฐ˜๋ฉด NOSQL์€ โ€œ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šคโ€์ด๋‹ค. ๋ณดํ†ต NOSQL์€ ํ‚ค-๋ฐธ๋ฅ˜๋‚˜ ์ปฌ๋Ÿผ, ๋ฌธ์„œ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ด์šฉํ•œ๋‹ค.
(RDBMS๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ธฐ์ˆ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.)
NOSQL: Not Only SQL, ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

  • ๊ทธ๋ ‡๋‹ค๋ฉด ์™œ, ์–ธ์ œ NOSQL์„ ์“ฐ๋Š” ๊ฑธ๊นŒ? ์•„์ฃผ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๋•Œ, ๋ฐ์ดํ„ฐ์˜ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ, ๋น ๋ฅธ ์“ฐ๊ธฐ ๋ฐ ๋ฐ์ดํ„ฐ์˜ ์•ˆ์ •์„ฑ์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ํŠน์ • ์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ์—๋„ ๋ฐ์ดํ„ฐ ์œ ์‹ค์ด๋‚˜ ์„œ๋น„์Šค ์ค‘์ง€๊ฐ€ ์—†๋Š” ํ˜•ํƒœ์˜ ๊ตฌ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์—, NOSQL์„ ์‚ฌ์šฉํ•œ๋‹ค.

1โ€“1. NOSQL์˜ ์ข…๋ฅ˜

1)ํ‚ค-๋ฐธ๋ฅ˜ ์Šคํ† ๋ฆฌ์ง€ํ˜• ํ‚ค-๋ฐธ๋ฅ˜ํ˜•: Redis, memcached, Coherence,
2)์—ด ์ง€ํ–ฅ ์™€์ด๋“œ ์ปฌ๋Ÿผ ์Šคํ† ์–ด: Cassandra, HBASE, Cloud Database
3) ๋ฌธ์„œํ˜•: MongoDB, Couchbase, MarkLogic, DynamicDB MS-DocumentDB
4) ๊ทธ๋ž˜ํ”„ํ˜•: Neo4j

2. ๋ ˆ๋””์Šค(Redis)๋ž€?

REDIS(REmote Dictionary Server)๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์˜ โ€œํ‚ค-๊ฐ’โ€ ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋ฉฐ, ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๊ณ  ์กฐํšŒํ•˜๊ธฐ์— ๋น ๋ฅธ Read, Write ์†๋„๋ฅผ ๋ณด์žฅํ•˜๋Š” ๋น„ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋‹ค.
๋ ˆ๋””์Šค๋Š” ํฌ๊ฒŒ 5๊ฐ€์ง€< String, Set, Sorted Set, Hash, List >์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์ง€์›ํ•œ๋‹ค.
Redis๋Š” ๋น ๋ฅธ ์˜คํ”ˆ ์†Œ์Šค ์ธ ๋ฉ”๋ชจ๋ฆฌ ํ‚ค-๊ฐ’ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์Šคํ† ์–ด์ด๋ฉฐ, ๋‹ค์–‘ํ•œ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ง‘ํ•ฉ์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž ์ •์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์†์‰ฝ๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด ๋ ˆ๋””์Šค์˜ ํŠน์ง•๊ณผ ์œ ์‚ฌํ•œ Memcahed์™€ ๋น„๊ตํ•˜๊ณ  ์‹ถ๋‹ค.

Memcached์˜ ๊ธฐ๋ณธ์ ์ธ ํŠน์ง•

  • ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.(๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—๋งŒ ์ €์žฅ๋˜๋ฏ€๋กœ ๋น ๋ฅด๋‹ค. ์ฆ‰, ์†๋„๊ฐ€ ๋Š๋ฆฐ Disk๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๋Š”๋‹ค.)
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—๋งŒ ์ €์žฅ๋œ๋‹ค.(ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฃฝ๊ฑฐ๋‚˜ ์žฅ๋น„๊ฐ€ Shutdown๋˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค.)
  • ๋งŒ๋ฃŒ์ผ์„ ์ง€์ •ํ•˜์—ฌ ๋งŒ๋ฃŒ๊ฐ€ ๋˜๋ฉด ์ž๋™์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค.(Cache์ด๊ธฐ์—)
  • ์ €์žฅ์†Œ ๋ฉ”๋ชจ๋ฆฌ ์žฌ์‚ฌ์šฉ( ๋งŒ๋ฃŒ๊ฐ€ ๋˜์ง€ ์•Š์•˜๋”๋ผ๋„ ๋” ์ด์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์—†์œผ๋ฉด LRU(Least recently used) ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์˜ํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค.)
    ๊ทธ๋ž˜์„œ, ๋ณดํ†ต ๋Œ€ํ˜• ํฌํ„ธ๋“ค์—์„œ Static page, ๋˜๋Š” ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๋“ฑ์„ ์บ์‰ฌํ•˜๋Š”๋ฐ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

์•„๋ž˜๋Š” ๋ ˆ๋””์Šค ๊ตฌ์กฐ๋ฅผ ์ด๋ฏธ์ง€ํ™” ํ•œ ์กฐ๋Œ€ํ˜‘ ๋‹˜์˜ ๋ธ”๋กœ๊ทธ์—์„œ ๊ฐ€์ ธ์˜จ ๊ทธ๋ฆผ์ด๋‹ค.

3. ๋ ˆ๋””์Šค(Redis) ํŠน์ง•

์˜์†์„ฑ์„ ์ง€์›ํ•˜๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ.
์ฝ๊ธฐ ์„ฑ๋Šฅ ์ฆ๋Œ€๋ฅผ ์œ„ํ•œ ์„œ๋ฒ„ ์ธก ๋ณต์ œ๋ฅผ ์ง€์›ํ•œ๋‹ค.
(Redis๊ฐ€ ์‹คํ–‰์ค‘์ธ ์„œ๋ฒ„๊ฐ€ ์ถฉ๋Œํ•˜๋Š” ๊ฒฝ์šฐ ์žฅ์•  ์กฐ์น˜ ์ฒ˜๋ฆฌ์™€ ํ•จ๊ป˜ ๋” ๋†’์€ ์ฝ๊ธฐ ์„ฑ๋Šฅ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ๋งˆ์Šคํ„ฐ์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ดˆ๊ธฐ ๋ณต์‚ฌ๋ณธ์„ ๋ฐ›๋Š” ๋งˆ์Šคํ„ฐ / ์Šฌ๋ ˆ์ด๋ธŒ ๋ณต์ œ๋ฅผ ์ง€์›ํ•œ๋‹ค. ๋งˆ์Šคํ„ฐ์—์„œ ์“ฐ๊ธฐ๊ฐ€ ์ˆ˜ํ–‰๋˜๋ฉด ์Šฌ๋ ˆ์ด๋ธŒ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ์Šฌ๋ ˆ์ด๋ธŒ๋กœ ์ „์†ก๋œ๋‹ค.)
๋ฌธ์ž์—ด, ๋ฆฌ์ŠคํŠธ, ํ•ด์‹œ, ์…‹, ์ •๋ ฌ๋œ ์…‹๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐํ˜•์„ ์ง€์›ํ•œ๋‹ค. ์“ฐ๊ธฐ ์„ฑ๋Šฅ ์ฆ๋Œ€๋ฅผ ์œ„ํ•œ ํด๋ผ์ด์–ธํŠธ ์ธก ์ƒค๋”ฉ(Sharding)์„ ์ง€์›ํ•œ๋‹ค.

  • ์ƒค๋”ฉ(Sharding) - ํŒŒํ‹ฐ์…”๋‹(Partitionong)๊ณผ ๋™์ผํ•˜๋‹ค. ๊ฐ™์€ ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ถ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•œ๋‹ค.

4. ๋ ˆ๋””์Šค(Redis)์˜ ์žฅ์ 

๋ฆฌ์ŠคํŠธ, ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์œ ์šฉํ•˜๋‹ค.
value ๊ฐ’์œผ๋กœ ๋ฌธ์ž์—ด, ๋ฆฌ์ŠคํŠธ, Set, Sorted set, Hash ๋“ฑ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์ง€์›ํ•˜๊ธฐ์—, ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌ์ŠคํŠธํ˜• ๋ฐ์ดํ„ฐ ์ž…๋ ฅ๊ณผ ์‚ญ์ œ๊ฐ€ MySQL์— ๋น„ํ•ด์„œ 10๋ฐฐ์ •๋„ ๋น ๋ฅด๋‹ค๊ณ  ํ•œ๋‹ค.
์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์—์„œ ๋™์‹œ์— ๊ฐ™์€ key์— ๋Œ€ํ•œ ๊ฐฑ์‹ ์„ ์š”์ฒญํ•  ๊ฒฝ์šฐ, Atomic ์ฒ˜๋ฆฌ๋กœ ๋ฐ์ดํ„ฐ ๋ถ€์ •ํ•ฉ ๋ฐฉ์ง€ Atomic์ฒ˜๋ฆฌ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค.(์›์ž์„ฑ์„ ์ž˜ ์ง€ํ‚จ๋‹ค)
๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜๋ฉด์„œ ์˜์†์ ์ธ ๋ฐ์ดํ„ฐ ๋ณด์กด
๋ช…๋ น์–ด๋กœ ๋ช…์‹œ์ ์œผ๋กœ ์‚ญ์ œ, expires๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋˜์ง€ ์•Š๋Š”๋‹ค.
์Šค๋ƒ…์ƒท(๊ธฐ์–ต์žฅ์น˜) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ด์šฉ์„ *.rdb ํŒŒ์ผ๋กœ ์ €์žฅํ•˜์—ฌ ํ•ด๋‹น ์‹œ์ ์œผ๋กœ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
Redis Server๋Š” 1๊ฐœ์˜ ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ๋กœ ์ˆ˜ํ–‰๋˜๋ฉฐ, ๋”ฐ๋ผ์„œ ์„œ๋ฒ„ ํ•˜๋‚˜์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์„œ๋ฒ„๋ฅผ ๋„์šฐ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
Master โ€” Slave ํ˜•์‹์œผ๋กœ ๊ตฌ์„ฑ์ด ๊ฐ€๋Šฅํ•จ, ๋ฐ์ดํ„ฐ ๋ถ„์‹ค ์œ„ํ—˜์„ ์—†์• ์ฃผ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ Master โ€” Slave ๋ฐฉ์‹์ด๋‹ค.

Docker์—์„œ Redis ์‹คํ–‰ํ•˜๊ธฐ

// ์ด๋ฏธ์ง€ ํ’€
docker pull redis:alpine

// ๋„คํŠธ์›Œํฌ ์ƒ์„ฑ
docker network create redis-net

// ๋ ˆ๋””์Šค ์‹คํ–‰ (์•ž์„œ ๋งŒ๋“  ๋„คํŠธ์›Œํฌ๋กœ ์‹คํ–‰)
docker run --name my-redis -p 6379:6379 --network redis-net -v my/folder:/data -d redis:alpine redis-server --appendonly yes

// ๋ ˆ๋””์Šค CLI๋กœ ๋ ˆ๋””์Šค ์„œ๋ฒ„์— ์ ‘์†
docker run -it --network redis-net --rm redis:alpine redis-cli -h my-redis

Spring์—์„œ Redis ์‹คํ–‰ํ•˜๊ธฐ

  • build.gradle์— ์˜์กด์„ฑ ์ถ”๊ฐ€
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
RedisTemplate vs Repository

๋ฐ์ดํ„ฐ๋ฅผ ๋ ˆ๋””์Šค์—์„œ CRUDํ•  ๋•Œ ๋‘๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ๋‹ค.

  • RedisTemplate: ๋น„๊ต์  Lowํ•œ ๋ฐฉ์‹์œผ๋กœ ์ง์ ‘ ํ‚ค๊ฐ’์œผ๋กœ ๋ฐธ๋ฅ˜๋ฅผ set, getํ•˜๋Š” ๋ฐฉ์‹. ์ž์œ ๋„๊ฐ€ ๋†’์ง€๋งŒ ์ฝ”๋“œ๊ฐ€ ์ง€์ €๋ถ„ํ•ด์ง€๊ณ  ํ†ต์ œ๊ฐ€ ์•ˆ๋  ์ˆ˜ ์žˆ์Œ, Transaction ํ™œ์šฉ ๊ฐ€๋Šฅ
  • Repository: ๋น„๊ต์  ์ถ”์ƒํ™”๋œ ๋ฐฉ์‹. JPA๋ฅผ ์“ฐ๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ์—”ํ‹ฐํ‹ฐ๋กœ ๋งŒ๋“ค๊ณ  ๊ฐ์ฒด๋ฅผ ์ €์žฅ, ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ, Transaction ๊ธฐ๋Šฅ ์—†์Œ.

@RedisHash

ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜๊ณ  @RedisHash๋ฅผ ๋ถ™์ด๋ฉด ํ•ด๋‹น ํด๋ž˜์Šค๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ๋ ˆ๋””์Šค์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋จ. ํ”„๋กœํผํ‹ฐ๋Š” value, timeToLive๊ฐ€ ์žˆ๋‹ค.

value(String): ์—”ํ‹ฐํ‹ฐ๊ฐ€ ๋ ˆ๋””์Šค์— ์ €์žฅ๋  ๋•Œ์˜ ํ‚ค๊ฐ’(KeySpace)๋ฅผ ์ง€์ •. ๋ณดํ†ต ํด๋ž˜์Šค์ด๋ฆ„์„ ์“ด๋‹ค.
timeToLive(long): TTL(time to live: ๋ฐ์ดํ„ฐ๊ฐ€ ๋ ˆ๋””์Šค์— ์–ผ๋งŒํผ์˜ ์‹œ๊ฐ„๋™์•ˆ ์ €์žฅ๋˜์–ด ์žˆ์„์ง€)๋ฅผ ์ง€์ •. -1๋กœ ์ง€์ •ํ•˜๋ฉด ์ง€์›Œ์ง€์ง€ ์•Š๋Š”๋‹ค. default๋Š” -1. ๋‹จ์œ„๋Š” ์ดˆ. (10์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๊ฐ์ฒด๊ฐ€ ์ €์žฅ๋œ ํ›„ 10์ดˆ ๋’ค ์ž๋™์œผ๋กœ ์‚ญ์ œ๋œ๋‹ค.)

@TimeToLive์–ด๋…ธํ…Œ์ด์…˜๋„ TTL์„ ์ง€์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์ธ๋ฐ, @TimeToLive์™€ timeToLive๋ฅผ ๋‘˜ ๋‹ค ์ง€์ •ํ•˜๋ฉด @TimeToLive์˜ ๊ฐ’์œผ๋กœ ์‹ค์ œ TTL์ด ์ ์šฉ๋œ๋‹ค.

@Id

Id๋กœ ์ง€์ •ํ•  ํ•„๋“œ์— ๋ถ™์ธ๋‹ค. ๋ณดํ†ต String์œผ๋กœ ์„ ์–ธํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ํƒ€์ž…๋„ ๊ฐ€๋Šฅ. Idํƒ€์ž…์ด Stringํƒ€์ž…์ผ๋•Œ ์—”ํ‹ฐํ‹ฐ์˜ id๋ฅผ null๋กœ ์ฃผ๋ฉด ๋ ˆ๋””์Šค์—์„œ UUID๊ฐ’์„ ๋งŒ๋“ค์–ด์„œ ๋„ฃ์–ด์คŒ. Long์œผ๋กœ ์„ ์–ธํ•˜๋ฉด ๋žœ๋ค ์ •์ˆ˜๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๋“ฏ. ๋งŒ์•ฝ id๋ผ๋Š” ํ•„๋“œ๊ฐ€ ์žˆ์œผ๋ฉด @Id์–ด๋…ธํ…Œ์ด์…˜์„ ์ƒ๋žตํ•ด๋„ ํ•ด๋‹น ํ•„๋“œ๊ฐ€ Id๋กœ ์ธ์‹์ด ๋จ.

@TimeToLive

๋ ˆ๋””์Šค ๋ฐ์ดํ„ฐ์˜ ํŒŒ๊ธฐ์‹œ๊ฐ„์„ ์ง€์ •ํ•˜๋Š” TimeToLive(TTL์ด๋ผ๊ณ  ํ”ํžˆ ๋ถ€๋ฆ„)์„ ์ง€์ •ํ•˜๋Š” ํ•„๋“œ์— ๋ถ™์ด๋Š” ์–ด๋…ธํ…Œ์ด์…˜. @RedisHash์˜ timeToLive ์˜ต์…˜์„ ํ†ตํ•ด์„œ๋„ TTL์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํด๋ž˜์Šค์— ๋ถ™์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ํด๋ž˜์Šค์˜ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๋™์ผํ•œ TTL์„ ๊ฐ€์งˆ ์ˆ˜ ๋ฐ–์— ์—†๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. @TimeToLive๋Š” ํ•„๋“œ๋กœ ์„ค์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค TTL๊ฐ’์„ ๋‹ค๋ฅด๊ฒŒ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

Configuration

  • cachingConfigurerSupport
@Configuration
@EnableCaching
public class CacheConfig extends CachingConfigurerSupport {

    RedisConnectionFactory redisConnectionFactory;

    public CacheConfig(RedisConnectionFactory redisConnectionFactory) {
        this.redisConnectionFactory = redisConnectionFactory;
    }
โ€ขโ€ขโ€ข

์ฐธ๊ณ  ์ž๋ฃŒ

EmbeddedRedis ๊ด€๋ จ M1 Mac Issue

์ด์™€ ๊ด€๋ จ๋œ ๋ฌธ์„œ๋Š” ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ์— ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Redis ๊ด€๋ จ ๋ช…๋ น์–ด

์ฐธ๊ณ 

๋ณด๊ณ  ๋˜ ๋ณด๊ณ  (๋ณด๋˜๋ณด)


Documents ๐Ÿ“ƒ


ํŒ€ ๊ทœ์น™ ๐Ÿค

Code Convention

๊ธฐ์ˆ  ๊ณต์œ  ๐Ÿธ


๋ฐ์ผ๋ฆฌ ๋ฏธํŒ… ๋ฐ ํšŒ์˜๋ก ๐Ÿณ

2์ฐจ ~ 4์ฐจ ํšŒ์˜ ๋ฐ ๋ฐ์ผ๋ฆฌ ๋ฏธํŒ…์€ ๋””์Šค์ฝ”๋“œ์—์„œ ์ง„ํ–‰๋˜์–ด ์ด์Šˆ๋กœ ๋ฐ˜์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ดํ›„ ํšŒ์˜ ๋ฐ ๋ฐ์ผ๋ฆฌ ๋ฏธํŒ…์€ ๋””์Šค์ฝ”๋“œ์—์„œ ์ง„ํ–‰๋˜์–ด ์ด์Šˆ๋กœ ๋ฐ˜์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Clone this wiki locally