Redis(REmote DIctionary Server)๋ ๋ฉ์์ง ๋ธ๋ก์ปค, ์บ์ ๋ฐ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ผ๋ก ์๋ํ ์ ์๋ ๊ณ ์ฑ๋ฅ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ์ ์ฅ์์ ๋๋ค. ๋น๊ตํ ์ ์๋ ์๋์ ์ ์ฐ์ฑ์ผ๋ก ์ ๋ช ํ Redis๋ ๋ฐฑ์๋ ๊ฐ๋ฐ ์๋๋ฆฌ์ค์์ ๋๋ฆฌ ์ฑํ๋์ด ๊ณ ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์ ๊ด๋ฆฌ์ ํ์ํฉ๋๋ค. Redis๋ ๊ด๋ฒ์ํ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ๋ฅผ ์คํ ์์ค ์๋ฃจ์ ์ผ๋ก ์๋ํ๋ฉฐ ๊ด๋ฒ์ํ ์ฌ์ฉ ์ฌ๋ก์์ ์ง์์ ์ธ ๋ฐ์ ๊ณผ ์ต์ ํ๋ฅผ ๋ณด์ฅํฉ๋๋ค.
๋ฐฑ์๋ ๊ฐ๋ฐ์์ Redis๋ ๋ฌธ์์ด, ํด์, ๋ชฉ๋ก, ์ธํธ, โโ์ ๋ ฌ๋ ์ธํธ, ๋นํธ๋งต ๋ฑ์ ํฌํจํ ๋ค์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ง์ํฉ๋๋ค. ์ด๋ฌํ ๋ค์ฌ๋ค๋ฅํจ์ ํตํด ๊ฐ๋ฐ์๋ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์๊ตฌ ์ฌํญ์ ๋ง๋ ํจ์จ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง ์๋ฃจ์ ์ ์ค๊ณํ๊ณ ๊ตฌํํ ์ ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๋ด ๋ฐ์ดํฐ ์ ์ฅ์์ธ Redis๋ ๋๋ฆฐ ๋์คํฌ ๊ธฐ๋ฐ ์ ์ฅ์ ์๋ฃจ์ ์ ๋นํด RAM ๊ธฐ๋ฐ ์ ์ฅ์์ ๋ด์ฌ๋ ํฅ์๋ ์ก์ธ์ค ์๊ฐ์ผ๋ก ์ธํด ํฐ ์ด์ ์ ์ป์ต๋๋ค.
AppMaster no-code ํ๋ซํผ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์๋ Redis์ ์ฃผ์ ๊ธฐ๋ฅ์ ํ๋ซํผ์ ๊ด๋ฒ์ํ ๊ธฐ๋ฅ๊ณผ ํจ๊ป ํ์ฉํ์ฌ ๊ฐ๋ ฅํ๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. AppMaster ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ์ฌ ๊ธฐ์ ์ง์์ด ์๋ ์ฌ์ฉ์๋ ์๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๋ฐ์ดํฐ ๋ชจ๋ธ, ๋ฐฑ์๋ ๋น์ฆ๋์ค ๋ ผ๋ฆฌ ๋ฐ API๋ฅผ ์์ฑํ ์ ์๋๋ก ํฉ๋๋ค. ์ด๋ Redis ์ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๊ณ, ๊ตฌํ ๋ฐ ์ ์ง ๊ด๋ฆฌ๋ฅผ ๊ฐ์ํํ๋ ๋์์ ์ฌ์ฉ์ ์ ์ ์ปดํ์ผ ์๋ฃจ์ ์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
Redis์ ์ฃผ๋ชฉํ ๋งํ ํน์ง ์ค ํ๋๋ ๊ฒ์/๊ตฌ๋ (Pub/Sub) ๋ฉ์์ง ํจํด์ ๋ํ ์ง์์ ๋๋ค. Pub/Sub๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ์์ฐ์ ๋๋ "๊ฒ์์"๊ฐ ์ด๋ค ๊ตฌ๋ ์๊ฐ ์๋์ง ๋ชฐ๋ผ๋ ์ฌ๋ฌ "๊ตฌ๋ ์"์๊ฒ ๋ฉ์์ง๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ์ด๋ ๋ฐ์ดํฐ ์์ฐ์์ ์๋น์๋ฅผ ๋ถ๋ฆฌํ์ฌ ํ์ฅ์ฑ๊ณผ ๋ด๊ฒฐํจ์ฑ์ ์ด์งํฉ๋๋ค. AppMaster ์ ํจ๊ป ์์ ํ๋ ๊ฐ๋ฐ์๋ Redis Pub/Sub ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๋ค์ํ ๋ชฉ์ ์ ์ํด ์ค์๊ฐ ๋ฉ์์ง ๋๋ ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ์ด ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
Redis๋ ๋ํ ์์ ์ฑ๊ณผ ๊ฐ์ฉ์ฑ์ ๊ธฐ์ฌํ๋ ๊ธฐ๋ณธ ์ ๊ณต ๋ณต์ ๊ธฐ๋ฅ์ ๋ณด์ ํ๊ณ ์์ต๋๋ค. ํ๋์ ๋ง์คํฐ์ ์ฌ๋ฌ ์ฌ๋ ์ด๋ธ ์ธ์คํด์ค๋ก ๋น๋๊ธฐ ๋ง์คํฐ-์ฌ๋ ์ด๋ธ ๋ณต์ ๋ฅผ ํ์ฉํฉ๋๋ค. ๋ง์คํฐ ์ธ์คํด์ค์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ฌ๋ ์ด๋ธ๊ฐ ์น๊ฒฉ๋์ด ๋ค์ดํ์๊ณผ ๋ฐ์ดํฐ ์์ค์ ์ต์ํํ ์ ์์ต๋๋ค. Redis ๋ณต์ ์ AppMaster ์์ฝ์์คํ ๋ด์์ ์์ฑ๋ Go ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์กฐํฉ์ ๊ณ ๋ถํ ์ํฐํ๋ผ์ด์ฆ ์์ค ์๋๋ฆฌ์ค์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ๊ฐ์ฉ์ฑ๊ณผ ํ์ฅ์ฑ์ด ๋ฐ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์ฅํฉ๋๋ค.
์บ์์์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ ๋ Redis๋ LRU(์ต์ ์ฌ์ฉ) ๋ฐ TTL(Time-To-Live) ์ ๊ฑฐ ์ ์ฑ ์ ๋ชจ๋ ์ ๊ณตํฉ๋๋ค. LRU๋ ์บ์์์ ์์ฃผ ์ก์ธ์คํ์ง ์๋ ํญ๋ชฉ์ ์ ๊ฑฐํ๋ ๋ฐ๋ฉด TTL์ ํญ๋ชฉ์ ๋ํด ๋ฏธ๋ฆฌ ๊ฒฐ์ ๋ ์๋ช ์ ์ค์ ํ๊ณ ๋ง๋ฃ๋๋ฉด ์ ๊ฑฐํฉ๋๋ค. ์ด๋ฌํ ์บ์ฑ ๊ธฐ๋ฅ์ ๋ฒํผ ์ญํ ์ ํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๋๋ฅผ ์ค์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
AppMaster ์์ ์์ฑํ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ PostgreSQL ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ์คํ ๋ฆฌ์ง ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ํตํฉํ ์ ์์ต๋๋ค. ์บ์ฑ, ๋ฉ์์ง ์ค๊ฐ ๋๋ ๊ธฐํ ๋ณด์กฐ ๋ชฉ์ ์ผ๋ก Redis๋ฅผ ์ฑํํ๋ ๊ฒ์ ์ค์ฉ์ ์ด๊ณ ํจ๊ณผ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. Redis์ ์ฑ๋ฅ ์ด์ ์ ๋ณด์ํ๋ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ Go๋ฅผ ์ฌ์ฉํ๋ฉด ์ํฐํ๋ผ์ด์ฆ ๋ฐ ๊ณ ๋ถํ ์๋๋ฆฌ์ค์์ ํฅ์๋ ํ์ฅ์ฑ์ ์ด์งํ๋ ์ปดํ์ผ๋ ๋ฆฌ์์ค ํจ์จ์ ์ธ ์คํ ํ์ผ์ด ๋ณด์ฅ๋ฉ๋๋ค.
Redis๋ ๋ฐฑ์๋ ๊ฐ๋ฐ ๋๋ฉ์ธ์์ ๊ท์คํ ๊ตฌ์ฑ ์์๊ฐ ๋๋ ๋ค์ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ ๊ฐ๋ ฅํ๊ณ ๋ค์ฌ๋ค๋ฅํ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ์ ์ฅ์์ ๋๋ค. AppMaster ํ๋ซํผ ๋ด ํตํฉ์ ํตํด ๊ฐ๋ฐ์๋ ๋ง์ถคํ ์๋ฃจ์ ์ด ์ ๊ณตํ๋ ํจ์จ์ฑ๊ณผ ์ ์์ฑ์ ํฌ์ํ์ง ์๊ณ ๊ฐ๋จํ๊ณ ์๊ฐ์ ์ธ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ์ง์คํ ์ ์์ต๋๋ค. Redis, Go ๋ฐ AppMaster ๊ฐ์ ์๋์ง ํจ๊ณผ๋ฅผ ํ์ฉํจ์ผ๋ก์จ ๋ฐฑ์๋ ๊ฐ๋ฐ ํ์ ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก ๋ฐ ์๊ตฌ ์ฌํญ์ ํด๊ฒฐํ๋ ํจ์จ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.