๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

Redis6

[Redis] redis ์บ์‹œ ์„œ๋ฒ„ ํ™œ์šฉ ํ›„ ์„ฑ๋Šฅ ๋น„๊ต (feat.postman) ์‹œ๊ฐ„ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ postman์ป์Œ ์บ์‹œ ์„œ๋ฒ„ ์•ˆ์“ธ ๋•Œ( ์ผ๋ฐ˜์ ์œผ๋กœ DB์™”๋‹ค๊ฐ”๋‹ค)์‹œ๊ฐ„ ์ธก์ •ํ•  ๋•Œ๋Š” ์—ฌ๋Ÿฌ๋ฒˆ apiํ˜ธ์ถœํ•ด์„œ ํ‰๊ท ์ ์ธ ๊ฐ’์œผ๋กœ ์ƒ๊ฐํ•ด์•ผ๋จ. ์บ์‹œ ์„œ๋ฒ„ ์“ธ ๋•Œ์ฒ˜์Œ์—๋Š” ์ด๋ ‡๊ฒŒ ๋œธ์™œ๋ƒ? cacheMiss๊ฐ€ ๋ฐœ์ƒํ•ด์„œ DB๊ฐ”๋‹ค์™”๊ธฐ๋•Œ๋ฌธ ํ•˜์ง€๋งŒ ๋‹ค์‹œ ๋‘๋ฒˆ์งธ๋ถ€ํ„ฐ + ํ‰๊ท ์ ์œผ๋กœ7ms๋กœ ์—„์ฒญ ๋นจ๋ผ์ง !!!! 370ms -> 7ms๋กœ ์—„์ฒญ ๋นจ๋ผ์ง„๊ฑฐ ํ™•์ธ ๊ฐ€๋Šฅ 2025. 11. 28.
[Redis] Redis CacheAside ์ „๋žต ๊ฐ„๋‹จํžˆ ์ ์šฉํ•ด๋ณด๊ธฐ @Cachable ์–ด๋…ธํ…Œ์ด์…˜ (๊ฒŒ์‹œํŒ ํ† ์ดํ”„๋กœ์ ํŠธ) ์ผ๋‹จ ํ˜„์žฌ ๋‚ด service์ฝ”๋“œ๋Š”๋‹จ์ˆœํžˆ DB์ฐ”๋Ÿฌ์„œ ๊ฐ–๊ณ  ์˜ค๋Š” ์ฝ”๋“œ์ž„.@Servicepublic class BoardService { private BoardRepository boardRepository; public BoardService(BoardRepository boardRepository) { this.boardRepository = boardRepository; } public List getBoards(int page, int size) { Pageable pageable = PageRequest.of(page -1, size); Page pageOfBoards = boardRepository.findAllBy.. 2025. 11. 28.
[Redis] ์บ์‹ฑ ์ „๋žต-Cache Aside, Write Around / ์บ์‹ฑ ๋œป / TTL ๋œป ์บ์‹œ๋ผ๋Š”๊ฑด... ์ „๊ณต ์ˆ˜์—… ๋“ค์œผ๋ฉด์„œ ์ˆ˜๋„์—†์ด ๋ฐฐ์šด๊ฑฐ์ง€๋งŒ..์ƒˆ์‚ผ ๊ฐ„๋žตํžˆ ๋‚ด ์–ธ์–ด๋กœ ์ •๋ฆฌํ•ด๋ณธ์ ์€ ์—†๋Š” ๋“ฏ ํ•ด์„œ ์ •๋ฆฌํ•˜๋Š” ์ค‘ ๐Ÿ“Cache ๋ž€?RAM์— ์ €์žฅ๋˜๋Š” ์ž„์‹œ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ. ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์•„๋Š” DB๋Š” ๋””์Šคํฌ์— ์ €์žฅ๋จ.๋”ฐ๋ผ์„œ ์ฝ์–ด์˜ค๊ธฐ, ์“ฐ๊ธฐ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ. ๋ฐ˜๋ฉด์— RAM์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๊ฒŒ ๋˜๋ฉด, ๋นจ๋ฆฌ ์™“๋‹ค๊ฐ“๋‹ค๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ๋•Œ๋ฌธ์— ์กฐํšŒ ์„ฑ๋Šฅ์ด ๋งค์šฐ ๋นจ๋ผ์ง.ํ•˜์ง€๋งŒ RAM๊ฐ€๊ฒฉ์ด ๋น„์‹ผ๋ฐ์—” ๋‹ค ์ด์œ ๊ฐ€ ์ž‡์ง€์š”.. ๐Ÿ“์บ์‹ฑ ์ „๋žต 2๊ฐ€์ง€ 1. Cache Aside ์ „๋žต์–ด๋–ป๊ฒŒ "์กฐํšŒ"ํ• ์ง€์— ๊ด€ํ•œ ์ „๋žต์ด๋‹ค.์šฐ์„ , ๋‚ด๊ฐ€ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์‹ถ์„๋•Œ, ์ผ๋‹จ ์บ์‹œ๋กœ ๊ฐ€. ๊ทธ๋ฆฌ๊ณ  ์บ์‹œ์— ๋‚ด๊ฐ€ ์ฐพ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€์žˆ์œผ๋ฉด(=Cache Hit) ๊ฑ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜ค๊ณ ์—†์œผ๋ฉด(=Cache Miss) ๊ทธ์ œ์„œ์•ผ DB๋กœ ๊ฐ€์„œ ์ฐพ์Œ. ๊ทธ๋ฆฌ๊ณ  DB์— .. 2025. 11. 25.
[Redis] ์ž์ฃผ ์“ฐ๋Š” ๋ช…๋ น์–ด ์ •๋ฆฌ + ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜ ๐Ÿ“์ž์ฃผ ์“ฐ์ด๋Š” ๋ช…๋ น์–ด 7๊ฐœ ์ •๋ฆฌโ–ถ๏ธ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ - ๊ฐ€์žฅ ๊ธฐ๋ณธ, ๋งŒ๋ฃŒ๊ธฐ๊ฐ„ ์—†์ดset [key] [value]set spacefish:name kimspacefish:name kim โ–ถ๏ธ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ - ๋งŒ๋ฃŒ๊ธฐ๊ฐ„ ์žˆ๊ฒŒset [key] [value] ex [๋งŒ๋ฃŒ๊ธฐ๊ฐ„(์ดˆ)]set spacefish:hobby reading ex 30 โ–ถ๏ธ๋ฐ์ดํ„ฐ ์กฐํšŒํ•˜๊ธฐkey๊ฐ’์œผ๋กœ value๊ฐ€ ๋ญ”์ง€ ์กฐํšŒํ•˜๋Š”๊ฑฐ์ž„get [key]get spacefish:name (nil) ๋‚˜์˜ค๋ฉด ์—†๋‹ค๋Š” ๋œป์ž„ โ–ถ๏ธ๋งŒ๋ฃŒ๊ธฐ๊ฐ„ ์กฐํšŒํ•˜๊ธฐttl [key]ttl spacefish:hobby23์ดˆ ๋‚จ์•˜๋‹ค๋Š” ๋œป์ž„.. ~์‹œ๊ฐ„์ด ํ˜๋Ÿฌ 30์ดˆ๊ฐ€ ๋‹ค ์ง€๋‚˜๊ณ ~- 2 ๋ผ๊ณ  ๋œธ : ํ‚ค๊ฐ€ ์—†๋‹ค๋Š” ๋œป (30์ดˆ ์ง€๋‚˜์„œ ์‚ญ์ œ๋์œผ๋‹ˆ๊นŒ) *๋งŒ์•ฝ์— ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์„ ์ง€์ •ํ•ด๋‘.. 2025. 11. 24.
[Redis] Windows์— Redis ์„ค์น˜ํ•˜๊ธฐ โ–ถ๏ธ์•„๋ž˜ ์‚ฌ์ดํŠธ์—์„œ ํ™•์žฅ์ž .msi์˜ ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜https://github.com/microsoftarchive/redis/releases Releases · microsoftarchive/redisRedis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes - microsoftarchive/redisgithub.com redis์˜ ๊ธฐ๋ณธ ํฌํŠธ๋Š” 6379์ด๋‹ค. ๊ธฐ๋ณธ 100MB์ด๋‹ค. โ–ถ๏ธInstallํ•ด์„œ ์„ค์น˜ ์ง„ํ–‰ โ–ถ๏ธ์ž‘์—…๊ด€๋ฆฌ์ž>์„œ๋น„์Šคํƒญ ๋“ค์–ด๊ฐ€๋ณด๋ฉด.. 2025. 11. 24.
[Redis] MacOS์— Redis ์„ค์น˜ํ•˜๊ธฐ โžก๏ธTerminal ํ‚ค๊ณ  homebrew ์„ค์น˜ (์„ค์น˜ ๋˜์–ด์žˆ๋Š” ์‚ฌ๋žŒ์€ skip)homebrew ์„ค์น˜๋Š” ์•„๋ž˜ ๊ธ€ ์ฐธ๊ณ https://space-fish.tistory.com/50 brew์„ค์น˜ ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด terminal์— brew --version๋ผ๊ณ  ์ณ์„œ ํ™•์ธ โžก๏ธ ํ„ฐ๋ฏธ๋„์— redis ์„ค์น˜ ๋ช…๋ น์–ดbrew install redis โžก๏ธ ์„ค์น˜ ๋๋Š”์ง€ ํ™•์ธbrew services info redis โžก๏ธ redis ์‹œ์ž‘ํ•ด๋ณด๊ธฐbrew services start redis startํ•˜๊ณ  ๋‹ค์‹œ info ๋ณด๋‹ˆ๊นŒ running์— ์ œ๋Œ€๋กœ ์ฒดํฌ ๋˜์–ด์žˆ์Œ. โžก๏ธ redis ์ค‘์ง€ ๋ช…๋ น์–ดbrew services stop redis stopํ•˜๊ณ  info๋กœ ํ™•์ธํ•ด๋ณด๋‹ˆ๊นŒ ์ž˜ ๋ฉˆ์ถฐ์žˆ์Œ. --๋‹ค์‹œ redis ์‹œ์ž‘ํ•˜๊ณ .. 2025. 11. 24.
๋ฐ˜์‘ํ˜•