Community

๐Ÿ’ฌ Redis ๋ž€? Redis๋Š” โ€œREmote DIctionary Serviceโ€ ์˜ ์•ฝ์ž๋กœ RAM ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์—ฌ ์กฐํšŒ ๋ฐ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅธ ์˜คํ”ˆ์†Œ์Šค ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ RA

๐Ÿ’ฌ Redis ๋ž€? Redis๋Š” โ€œREmote DIctionary Serviceโ€ ์˜ ์•ฝ์ž๋กœ RAM ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์—ฌ ์กฐํšŒ ๋ฐ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅธ ์˜คํ”ˆ์†Œ์Šค ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ RAM ์€ ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ „์›์ด ๊บผ์ง€๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Redis ๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์— ๋น„ํ•ด ๋‚ด๊ตฌ์„ฑ ์žˆ๊ณ  ์ผ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๐Ÿ’ฌ Redis ์˜ ์žฅ์  - ๋งค์šฐ ๋น ๋ฅธ ์†๋„๋กœ ์ฝ๊ธฐ ์™€ ์“ฐ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. - ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๋ฏ€๋กœ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ์งง๊ณ  ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋†’์€ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. - ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํ˜•์‹(String, List, Set, Map, Streams, JSON ๋“ฑ)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. - ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋‹ฌ๋ฆฌ Redis๋Š” ํ•ด์‹œ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ์ธํ•ด ํ›จ์”ฌ โ€‹โ€‹๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•œ ์ค„์˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Redis ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(Python, Java, C, C++ ๋“ฑ)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. - ๊ธฐ๋ณธ ๋ณต์ œ๋ณธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋”ฐ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— Redis ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ์‰ฝ๊ฒŒ ๋ณต์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ๊ฐ€์šฉ์„ฑ๊ณผ ํ™•์žฅ์„ฑ ์ด ๋›ฐ์–ด ๋‚ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ณต์ œ๋ณธ ๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋œ ํ† ํด๋กœ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Redis๋Š” ์ผ๊ด€๋œ ์„ฑ๋Šฅ๊ณผ ์•ˆ์ •์„ฑ์„ ์ œ๊ณต ํ•ฉ๋‹ˆ๋‹ค. - ์ผ์ • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ์‚ญ์ œ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(key ๊ฐ’์— ๋Œ€ํ•ด expire time ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.) ๐Ÿ’ฌ Redis ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ์ผ€์ด์Šค - ๋น ๋ฅด๊ฒŒ ์ €์žฅ ๋ฐ ์กฐํšŒ๊ฐ€ ํ•„์š”ํ•œ ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌ ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. - ๊ฒŒ์ž„ ์ˆœ์œ„ํ‘œ ๊ตฌํ˜„: ์ˆœ์œ„ํ‘œ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค Redis ์— ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์ด๋ฅผ ์ฆ‰์‹œ ์กฐํšŒ ํ•˜์—ฌ ๋ฐ˜์˜ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. - ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ธ์…˜ ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. - ์Œ์‹ ๋ฐฐ๋‹ฌ ๋ฐ ํƒ์‹œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ GeoSpatial ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. - ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘, ์ฒ˜๋ฆฌ ๋ฐ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•œ ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋กœ Apache Kafka์™€ ๊ฐ™์€ ์ŠคํŠธ๋ฆฌ๋ฐ ์†”๋ฃจ์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ’ฌ Redis ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ํž˜๋“  ์ผ€์ด์Šค - ์ค‘์š”ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฐ์ดํ„ฐ(ํšŒ์›, ๊ฒฐ์ œ ๋“ฑ)๋Š” Redis ์— ์ €์žฅํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์ง€์†์ ์ด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. - join ๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๋Œ€์•ˆ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Redis๋Š” key-value ํ˜•ํƒœ๋กœ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— key ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ๋ฐ์ดํ„ฐ๊ฐ€ ๋งค์šฐ ๋งŽ์ด ์Œ“์—ฌ์•ผํ•  ๊ฒฝ์šฐ RAM ์ด ๋””์Šคํฌ์— ๋น„ํ•ด ํ›จ์”ฌ ๋น„์‹ธ๊ณ  ์ €์žฅ ๊ณต๊ฐ„์ด ์ œํ•œ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ด๋Ÿด ๊ฒฝ์šฐ Redis ๋ณด๋‹ค๋Š” ๋””์Šคํฌ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. - ACID ์†์„ฑ์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋†’์€ ๊ด€๊ณ„ํ˜•์ธ ๊ฒฝ์šฐ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์•Œ๋ฆผ

์•Œ๋ฆผ์ด ์—†์Šต๋‹ˆ๋‹ค