[Database] ํŠธ๋žœ์žญ์…˜๊ณผ ACID ์›์น™์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด์ž
ยท
Programming/Database
Transcation ๊ฐœ๋…  โ–ถ๏ธŽ ์ •์˜์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ํŠธ๋žœ์žญ์…˜์€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ์ž‘์—…์˜ ๋…ผ๋ฆฌ์  ๋‹จ์œ„์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ``๋‚ด ๊ณ„์ขŒ๋กœ์˜ ์ž…๊ธ‰``, ``๋‹ค๋ฅธ ๊ณ„์ขŒ๋กœ์˜ ์ถœ๊ธˆ`` ๋“ฑ์ด ์žˆ๊ฒ ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ฐœ๋ฐœ์ž ๊ด€์ ์—์„œ ํŠธ๋žœ์žญ์…˜์€? ์ž‘์—…์˜ ๋™์‹œ์„ฑ ์ œ์–ด, ๊ทธ๋ฆฌ๊ณ  ํšŒ๋ณต์˜ ๋‹จ์œ„๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค.์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฟผ๋ฆฌ๋ฌธ์ด ๋ชจ์—ฌ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์„ ์ด๋ฃฌ๋‹ค.โ–ถ๏ธŽ ์ฃผ์š” ๋ช…๋ น์–ดBEGIN, ROLLBACK, COMMIT ์ด ์žˆ๋‹ค.โ˜‘๏ธ BEGIN / STARTํŠธ๋žœ์žญ์…˜์˜ ์‹œ์ž‘์„ ์„ ์–ธํ•œ๋‹ค.โ˜‘๏ธ ROLLBACKํŠธ๋žœ์žญ์…˜์˜ ์ค‘๋‹จ์„ ์„ ์–ธํ•œ๋‹ค. ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋˜๋Œ๋ ค ์›๋ž˜ ์ƒํƒœ๋กœ ๋ณต๊ตฌํ•œ๋‹ค.ํŠธ๋žœ์žญ์…˜์ด ์‹œ์ž‘(BEGIN)๋˜๊ธฐ ์ „์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต๊ตฌ๋œ๋‹ค.โœ“ SAVEPOINT (์„ ํƒ์  ๋กค๋ฐฑ)ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ save point๋ฅผ ์ง€์ •ํ•˜์—ฌ ํŠน์ • ์‹œ์ ๊นŒ์ง€..
Redis์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด์ž
ยท
Programming/Database
Redis (Remote Dictionary Server)โ–ถ๏ธŽ ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ๋ฉ”๋ชจ๋ฆฌ๋ž€ ๋ง ๊ทธ๋Œ€๋กœ ์ปดํ“จํ„ฐ์˜ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(RAM)์— ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฌ๋ ค์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.MySQL, MongoDB ๋“ฑ disk(SSD, HDD)์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋น ๋ฅด๋ฏ€๋กœ ๊ฒ€์ƒ‰ ์†๋„ ๋ฉด์—์„œ ์›”๋“ฑํ•œ ์„ฑ๋Šฅ์„ ๊ฐ€์ง„๋‹ค.โ–ถ๏ธŽ ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ ์ง€์›๊ธฐ๋ณธ์ ์œผ๋กœ Key-Value ๊ตฌ์กฐ๋กœ ์ €์žฅํ•œ๋‹ค. ํ•˜๋‚˜์˜ Key์— Value ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ์ด๋‹ค.Value์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋กœ ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•œ๋‹ค.StringListSetSorted SetHashStream / Bitmap / Bitfield / Geospatialโ–ถ๏ธŽ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œRedis๋Š” ํ•˜๋‚˜์˜ ์ฝ”์–ด..