โœ๏ธ Java

|Radis| Radis Cache โ“

kyuu_ng 2023. 1. 4. 21:47

๐Ÿงง Radis

: Radis๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ, ์บ์‹œ๋กœ, ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค๋กœ ์‚ฌ์šฉ๋˜๋Š” in-memory  ๊ธฐ๋ฐ˜์˜ Ditionary(key-value) ์ €์žฅ์†Œ

: ์ธ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ตฌ์กฐ๋กœ ๋””์Šคํฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋น ๋ฅธ ์žฅ์ ์ด ์žˆ๋‹ค.

: ๋‹ค๋งŒ ์šฉ๋Ÿ‰์ด ์ ๊ธฐ ๋•Œ๋ฌธ์— ์ €์žฅํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ ์…‹์ด ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ณด๋‹ค ํฌ๋ฉด ๋””์Šคํฌ๋ฅผ ์จ์•ผํ•จ

๐Ÿช™ Cache

: ํ•œ๋ฒˆ ์กฐํšŒ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ๊ณต๊ฐ„์— ์ €์žฅํ•ด๋‘๊ณ , ๋˜‘๊ฐ™์€ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜์˜€์„ ๋•Œ ์„œ๋ฒ„๋กœ ์š”์ฒญํ•˜์ง€ ์•Š๊ณ  ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํด๋ผ์ด์–ธํŠธํ•œํ…Œ ๋ฐ”๋กœ ์ œ๊ณตํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

(1) Cache hit : ์บ์‹œ ์Šคํ† ์–ด์— ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋ฐ”๋กœ ๊ฐ€์ ธ์˜จ๋‹ค(๋น ๋ฆ„)

(2) Cache miss : ์บ์‹œ ์Šคํ† ์–ด์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ DB์„œ๋ฒ„์— ์š”์ฒญํ•˜์—ฌ ๊ฐ€์ ธ์˜จ๋‹ค(๋А๋ฆผ)

 

โ™Ÿ Radis Cache ์ „๋žต

: ์บ์‹œ ์ „๋žต์€ ์›น์„œ๋น„์Šค์—์„œ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋จ

: ์ผ๋ฐ˜์ ์œผ๋กœ ์บ์‹œ(cache)๋Š” ๋ฉ”๋ชจ๋ฆฌ(RAM)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋””์Šคํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅธ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.

: ์ž์ฃผ ์กฐํšŒ๋˜๋Š” ๋ฐ์ดํ„ฐ๋‚˜, ๊ฒฐ๊ณผ๊ฐ’์ด ์ž์ฃผ ๋ณ€ํ•˜์ง€ ์•Š์€ ์ผ์ •ํ•œ ๋ฐ์ดํ„ฐ๋“ค์„ ์ด ์ „๋žต์— ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด ์ข‹๋‹ค.

: Redis๋Š” in-memory์ง€๋งŒ, persistent on-disk ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ํŠน์ •ํ•œ๋•Œ์— ํ˜„์žฌ๊นŒ์ง€์˜ In-memory ์ƒํƒœ๋ฅผ disk์— ์ €์žฅํ•ด ๋‘์—ˆ๋‹ค๊ฐ€, Redis๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ Disk์— ์ €์žฅํ•ด ๋‘์—ˆ๋˜ dump ํŒŒ์ผ๋“ค์„ ๊ฐ€์ ธ์™€์„œ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ ์†์‹ค์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

*) ๋‹ค์–‘ํ•œ ์บ์‹œ ์ „๋žต ์ฐธ๊ณ  ์‚ฌ์ดํŠธ : https://inpa.tistory.com/entry/REDIS-%F0%9F%93%9A-%EC%BA%90%EC%8B%9CCache-%EC%84%A4%EA%B3%84-%EC%A0%84%EB%9E%B5-%EC%A7%80%EC%B9%A8-%EC%B4%9D%EC%A0%95%EB%A6%AC

 

๐Ÿ“ Radis์˜ ์žฅ๋‹จ์ 

 

์žฅ์  : 

- ๋น ๋ฅธ ์†๋„ 

- ๋ฆฌ์ŠคํŠธ, ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์œ ์šฉํ•˜๋‹ค

- ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜๋ฉด์„œ ์˜์†์ ์ธ ๋ฐ์ดํ„ฐ ๋ณด์กด์ด ๊ฐ€๋Šฅ

- ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ๋กœ ์ˆ˜ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„ ํ•˜๋‚˜์— ์—ฌ๋Ÿฌ๊ฐœ์˜ Redis Server๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋‹ค.

 

๋‹จ์  : 

- ์‹ฑ๊ธ€์“ฐ๋ ˆ๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋ฒˆ์— ํ•˜๋‚˜์˜ ๋ช…๋ น์–ด๋งŒ ์‹คํ–‰ => ๊ธด ์ฒ˜๋ฆฌ์‹œ๊ฐ„์ด ํ•„์š”ํ•œ ๋ช…๋ น์–ด๋ฅผ ์“ฐ๋ฉด ๋ถˆ๋ฆฌํ•จ

- In-memory ํ˜•์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ์Šค๋ƒ…์ƒท / AOP ๊ธฐ๋Šฅ์„ ํ†ตํ•œ ๋ณต๊ตฌ ๋ฐฉ์‹์„ ์ฃผ์˜ํ•˜์—ฌ ์ž‘์„ฑํ•ด์•ผ ๋ฐ์ดํ„ฐ ์œ ์‹ค์— ๋Œ€๋น„ํ•  ์ˆ˜ ์žˆ๋‹ค.