๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋น…๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋ถ„์„์„ ์œ„ํ•œ NoSQL&Redis4

[๋น…๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋ถ„์„์„ ์œ„ํ•œ NoSQL & Redis] Chapter 5 - Redis ์•„ํ‚คํ…์ฒ˜ 5.1 Redis ์•„ํ‚คํ…์ฒ˜ 1. ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ Resident Area ์‚ฌ์šฉ์ž์˜ ์ž‘์—…์ด ๋จผ์ € ์ €์žฅ๋˜๋Š” ์˜์—ญ ์‹ค์ œ ์ž‘์—… ์ˆ˜ํ–‰ ๊ณต๊ฐ„ "WorkingSet" ์˜์—ญ์œผ๋กœ๋„ ํ‘œํ˜„ Data Structure ์ƒํƒœ ์ •๋ณด ์ €์žฅ์„ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ Redis Server ์šด์˜ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง์— ํ•„์š” 2. ํŒŒ์ผ ์˜์—ญ AOF ํŒŒ์ผ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ ์ง€์† ์ €์žฅ ์Šค๋ƒ…์ƒท ๋ฐ์ดํ„ฐ DUMP ํŒŒ์ผ ์†Œ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ผ์‹œ์  ์ €์žฅ 3. ํ”„๋กœ์„ธ์Šค ์˜์—ญ Server Process Redis ์ธ์Šคํ„ด์Šค ๊ด€๋ฆฌ ๋ฐ ์‚ฌ์šฉ์ž ์ž‘์—… ์ˆ˜ํ–‰ 4๊ฐœ์˜ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ๋กœ ๊ตฌ์„ฑ Main thread, Sub thread 1(BIO-Close-File), Sub thread 2(BIO-AOF-Resync), Sub thread 3(BIO-Lazy-Free) Client Process .. 2023. 8. 20.
[๋น…๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋ถ„์„์„ ์œ„ํ•œ NoSQL & Redis] Chapter 4 - Redis Data Modeling 4.1 ํ‚ค-๋ฐธ๋ฅ˜(Key-Value) ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ฐœ๋… 4.1.1 ์šฉ์–ด ์„ค๋ช… ํ…Œ์ด๋ธ”(Table): ๊ด€๊ณ„ํ˜• DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๋ฅผ ํ…Œ์ด๋ธ”(table)์ด๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ Key-Value DB์—์„œ๋„ ํ…Œ์ด๋ธ”(Table)์ด๋ผ๊ณ  ํ•จ. ํ•„๋“œ(Field) ๋˜๋Š” ์—˜๋ฆฌ๋จผํŠธ(Element): ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๊ณ  ์žˆ๋Š” ์š”์†Œ๋“ค์„ ๊ด€๊ณ„ํ˜• DB์—์„œ๋Š” ์ปฌ๋Ÿผ(column)์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ Key-Value DB์—์„œ๋Š” ํ•„๋“œ(Field) ๋˜๋Š” ์—˜๋ฆฌ๋จผํŠธ(Element)๋ผ๊ณ  ๋งํ•จ. Key-Value DB์—์„œ๋Š” ํ•˜๋‚˜์˜ Key์™€ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ•„๋“œ ๋˜๋Š” ์—˜๋ฆฌ๋จผํŠธ๋กœ ๊ตฌ์„ฑ๋จ. Key-Value DB์—์„œ๋Š” ์ œ์•ฝ ์กฐ๊ฑด ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜์ง€ ์•Š์ง€๋งŒ, HyperLogLogs ๋ฐ์ดํ„ฐ ์†์„ฑ์„ ํ†ตํ•ด ์›ํ•˜๋Š” ์กฐ๊ฑด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ.. 2023. 8. 20.
[๋น…๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋ถ„์„์„ ์œ„ํ•œ NoSQL & Redis] Chapter 3 - ํŠธ๋žœ์žญ์…˜ ์ œ์–ด & ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ 3.1 Isolation & Lock ๋ชจ๋“  NoSQL ์ œํ’ˆ์ด ํŠธ๋žœ์žญ์…˜์„ ์ œ์–ดํ•˜์ง€๋Š” ์•Š์ง€๋งŒ, Redis๋Š” ํŠธ๋žœ์žญ์…˜ ์ œ์–ด ๊ฐ€๋Šฅ. Redis๋Š” Read Commited ํƒ€์ž…์˜ ํŠธ๋žœ์žญ์…˜ ์ œ์–ด๋„ ๊ฐ€๋Šฅํ•จ. Redis 4.0 ๋ฒ„์ „์—์„œ Data Sets ๋ฝ ๋งค์ปค๋‹ˆ์ฆ˜ ์ œ๊ณต. 3.2 CAS (Check and Set) CAS๋Š” ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ๊ณต์œ ๋ฅผ ์œ„ํ•œ ๊ธฐ์ˆ ๋กœ ๋™์‹œ ์ฒ˜๋ฆฌ ์‹œ ์ถฉ๋Œ์„ ํ”ผํ•จ. Watch ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถฉ๋Œ ๊ฐ์ง€ ๊ฐ€๋Šฅ. 3.3 commit & rollback EXEC: ๋ณ€๊ฒฝํ•œ ๋ฐ์ดํ„ฐ ์ตœ์ข… ์ €์žฅ์— ์‚ฌ์šฉ. DISCARD: ๋ณ€๊ฒฝํ•œ ๋ฐ์ดํ„ฐ ์ตœ์ข… ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์ทจ์†Œ. 3.4 Index ์œ ํ˜• ๋ฐ ์ƒ์„ฑ Redis๋Š” Primary Key Index์™€ Secondary Key Index๋ฅผ ์ œ๊ณต. Exact Match์™€ Ra.. 2023. 8. 20.
[๋น…๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋ถ„์„์„ ์œ„ํ•œ NoSQL & Redis] Chapter 2 - Redis ์„ค์น˜ ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ Redis์˜ ์ฃผ์š” ํŠน์ง• Redis๋Š” NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋ถ„๋ฅ˜๋˜๋ฉฐ Key-Value ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Key-Value DB์ธ ๋™์‹œ์— In-Memory ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ์ €์žฅ ๊ธฐ์ˆ ์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๋น ๋ฅธ Read/Write ์„ฑ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์ง€์›ํ•˜๋ฉฐ String, Set, Sorted Set, Hash, List, HyperLogLogs ๋“ฑ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ Dump ํŒŒ์ผ๊ณผ AOF(Append Of File) ๋ฐฉ์‹์œผ๋กœ ๋””์Šคํฌ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Master/Slave Replication์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ๋ถ„์‚ฐ ๋ณต์ œ๋ฅผ ์ง€์›ํ•˜๋ฉฐ Query Off Loading์„ ํ†ตํ•ด Master๋Š” Read/Write ์ž‘์—…, Slave๋Š” Read ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  .. 2023. 8. 20.
๋ฐ˜์‘ํ˜•