๊ธ๋ก๋ฒ ๋ณ์์ ์ธ์ ๋ณ์
RealMySQL 8.0์ ์ฝ๊ณ ์ ๋ฆฌํ์ต๋๋ค. DBMS Variables ๋น๊ต ํ์ด์ง๋ฅผ ๋ง๋ค ๋ ๊ธ๋ก๋ฒ์ธ์ง ์ธ์ ์ธ์ง ๋ํด์ ๊ตฌ๋ถํ ์ผ๋ ์๊ณ ํ๋๋ฐ,, ์ด๋ฒ ๊ธฐํ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. MySQL์ ์์คํ ๋ณ์๋ ์ ์ฉ ๋ฒ์์ ๋ฐ๋ผ ๊ธ๋ก๋ฒ ๋ณ์์ ์ธ์ ๋ณ์๋ก ๋๋๋ค. ๊ธ๋ก๋ฒ ๋ณ์ MySQL ์๋ฒ ์ธ์คํด์ค์์ ์ ์ฒด์ ์ผ๋ก ์ํฅ์ ๋ฏธ์น๋ ์์คํ ๋ณ์ MySQL ์๋ฒ ์์ฒด์ ๊ด๋ จ๋ ์ค์ ์ผ ๋๊ฐ ๋ง์ MySQL ์๋ฒ์์ ๋จ ํ๋๋ง ์กด์ฌ innodb_buffer_pool_size : InnoDB ๋ฒํผ ํ ํฌ๊ธฐ key_buffer_size : MyISAM์ ํค ์บ์ ํฌ๊ธฐ ์ธ์ ๋ณ์ MySQL ํด๋ผ์ด์ธํธ๊ฐ MySQL ์๋ฒ์ ์ ์ํ ๋ ๊ธฐ๋ณธ์ผ๋ก ๋ถ์ฌํ๋ ์ต์ ์ ๊ธฐ๋ณธ๊ฐ์ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉ ํด๋ผ์ด์ธํธ์ ํ์์ ๋ฐ๋ผ ๊ฐ๋ณ ์ปค๋ฅ์ ..
Percona Toolkit์ด๋?
MySQLDBA ์ด์๊ต์ก์์ ํผ์ฝ๋ ํดํท์ ๋ํด ์ ํ๊ฒ ๋์๋ค. ์ด๋ค ๊ธฐ๋ฅ์ ํ๋ ํด์ธ์ง ์์๋ณด์! Percona Toolkit Percona ์ฌ์์ ์ ์ํ Toolkit ์ผ๋ก์ DB์ ์ฑ๋ฅ ์ถ์ด, Disk ์ฌ์ฉ๋, DB ๋ด ํต๊ณ์ ๋ณด๋ฅผ ์ ๋ฆฌํ์ฌ ์ฝ๊ฒ ๋ณด์ฌ์ฃผ๋ tool ๊ธฐ๋ฅ ๋ณ๋ก ์คํฌ๋ฆฝํธ๊ฐ ๊ตฌ์ฑ๋์ด ์์ (์์น: /db/mysql/util/ptkit/bin) ์๋ ๊ณต์ ์ฌ์ดํธ๋ฅผ ๋ณด๋ฉด ๋ค๋ฅธ DBMS์ ๋ํด์๋ ์ง์ํ๋ ๊ฒ ๊ฐ์๋ฐ ์ฐ๋ฆฌ ํ์์๋ ๋ด๊ฐ ์๋ ํ์์๋ ์ผ๋จ MySQL ์ด์์์ ์ฌ์ฉํ๊ณ ์๋ค. https://percona.com/ Open Source Database Software Support & Services | Percona Percona delivers enterprise-class su..
RealMySQL 8.0 | 5์ฅ ํธ๋์ญ์ ๊ณผ ์ ๊ธ
RealMySQL 8.0 ์ ์ฝ๊ณ ์ ๋ฆฌํ์ต๋๋ค. ๋ชฉ์ฐจ ํธ๋์ญ์ MySQL ์์ง์ ์ ๊ธ InnoDB ์คํ ๋ฆฌ์ง ์์ง ์ ๊ธ MySQL์ ๊ฒฉ๋ฆฌ ์์ค ํธ๋์ญ์ (Transaction) ์์ ์ ์์ ์ฑ์ ๋ณด์ฅํด ์ฃผ๋ ๊ฒ 100% : ๋ชจ๋ ์๋ฒฝํ๊ฒ ์ฒ๋ฆฌํ๊ฑฐ๋ 0% : ์ฒ๋ฆฌํ์ง ๋ชปํ ๊ฒฝ์ฐ์๋ ์ ์ํ๋ก ๋ณต๊ตฌํด์ ์์ ์ ์ผ๋ถ๋ง ์ ์ฉ๋๋ ํ์(Partial update)์ ๋ฐฉ์ง ์ ๊ธ(Lock) ๐ค ์ ๊ธ ์์ด ์ฌ๋ฌ ์ปค๋ฅ์ ์ด ํ๋์ ๋ฐ์ดํฐ๋ฅผ ๋์์ ๋ณ๊ฒฝํ๋ค๋ฉด? ๊ทธ ๋ฐ์ดํฐ์ ๊ฐ์ ์์ธกํ ์ ์๊ฒ ๋ฉ๋๋ค. ์ฆ, ์ฌ๋ฌ ์ปค๋ฅ์ ์์ ๋์์ ๋์ผํ ์์์ ์์ฒญํ ๊ฒฝ์ฐ ์์๋๋ก ํ ์์ ์๋ ํ๋์ ์ปค๋ฅ์ ๋ง ๋ณ๊ฒฝํ ์ ์๋๋ก ๋์์ฑ์ ์ ์ดํ๋ ์ญํ ํธ๋์ญ์ : ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ๊ธฐ๋ฅ ์ ๊ธ : ๋์์ฑ์ ์ ์ดํ๊ธฐ ์ํ ๊ธฐ๋ฅ ๊ฒฉ๋ฆฌ ์..
Redis ๋ค๋ฅธ ํฌํธ๋ก ์ค์นํ๊ธฐ
2023.05.16 - [๐ ์ธํ๋ผ/๋ชจ๋ํฐ๋ง] - Prometheus + Grafana๋ก Redis ๋ชจ๋ํฐ๋ง ๊ตฌ์ถํ๊ธฐ ์์ ๊ณผ์ ๋ฅผ ์งํํ๋ฉด์ ํ ์ธ์คํด์ค์ ๊ฐ๊ฐ ๋ค๋ฅธ ๋ฒ์ ์ Redis๋ฅผ ์ค์นํด์ฃผ์ด์ผ ํ์ต๋๋ค. Redis์ ๊ธฐ๋ณธ ํฌํธ๋ 6379์ด๊ธฐ ๋๋ฌธ์, ๋ Redis์ ํฌํธ๊ฐ ๊ฒน์น์ง ์๋๋ก ํฌํธ ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํด ์ค์น๋๋๋ก ์งํํด๋ณด๊ฒ ์ต๋๋ค! ์๋ ๊ณผ์ ๋๋ก ์งํํด์ค๋๋ค. # Redis ์์ค ์ฝ๋ ๋ค์ด๋ก๋ ๋ฐ ์์ถ ํด์ $ wget http://download.redis.io/releases/redis-x.x.x.tar.gz $ tar xzf redis-x.x.x.tar.gz $ cd redis-x.x.x # redis.conf ํ์ผ ์ด๊ณ ํฌํธ ๋ฒํธ ๋ณ๊ฒฝ $ vi redis.conf # port 6379 ->..
Redis warning ์์ด ๊น๋ํ๊ฒ ๋์ฐ๊ธฐ
2023.01.25 - [๐ ์ธํ๋ผ/NHN Cloud] - NHN Cloud ์ธ์คํด์ค์ Redis ์ค์นํ๊ธฐ (1) - ์์ถํ์ผ ์ด์ฉ 2023.02.08 - [๐ป ํ๋ก๊ทธ๋๋ฐ/Shell] - Redis ์ค์น ์๋ํ ์คํฌ๋ฆฝํธ (1) - binary ๋ฐฉ์ ์์ ํฌ์คํ ์ ์ด์ฉํด์ Redis๋ฅผ ์ค์นํ์ ๋ ์ด๊ธฐ ์คํ ํ๋ฉด์ ๋๋ค. ํ์ง๋ง ๋ญ๊ฐ ๊น๋ํ์ง ์๊ณ ๋ค์๊ณผ ๊ฐ์ ๋ฉ์์ง๋ค์ด ๋ ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. Warning: no config file specified, using the default config. In order to specify a config file use src/redis-server /path/to/redis.conf WARNING: The TCP backlog setting of 51..
[ํ ์ค SLASH 21] MYSQL HA & DR Topology
โ ๋ฐํ ์์ https://www.youtube.com/watch?v=t96l6ry_qmw โ๏ธ ๋ฐํ ๋ด์ฉ MMM HA ์คํ์์ค ์๋ฃจ์ ์ด๋ฆ ํ ์ค์ Live MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค HA ์๋ฃจ์ ์ผ๋ก ์ฌ์ฉ๋๊ณ ์์ Google์์ ๊ฐ๋ฐ๋ ์๋ฃจ์ ๋ฒ์ ์ ๋ฐ์ดํธ๋ ์ค์ง๋์ด์, ํ์ ์ ์์ฒด ์ ๋ฐ์ดํธ๋ฅผ ํ๋ฉด์ ์ฌ์ฉ ์ค ๊ธฐ๋ณธ ๊ตฌ์ฑ๋ MASTER-MASTER 01, 02๋ ธ๋๋ง MMM์ด ๊ด๋ฆฌํ๋๋ก ๊ตฌ์ฑ 03๋ฒ SLAVE๋ MMM์ด ๊ด๋ฆฌํ๋๋ก ํฌํจ์ํฌ ์ ์์ง๋ง, ์ ๊ท MASTER๋ก failover ํ๋ ๊ณผ์ ์์ ๋์๋์ง ์๋ ์ผ์ด์ค๊ฐ ์์ด์ ์ด ๊ตฌ์ฑ์ ์ฌ์ฉํ์ง ์์ 1. ๋ฐ๋ชฌ 2๊ฐ : Monitoring, Agent 2. ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ failover๋ฅผ ์ํด ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์ฌ๋ผ๊ฐ๋ ์๋น์ค IP Monit..
Ubuntu์์ PostgreSQL ์ธ๋ถ ์ ์ ํ์ฉํ๊ธฐ
1. ์ํฉ Ubuntu ์ธ์คํด์ค์ CentOS ๋์ปค ์ปจํ ์ด๋๋ฅผ ๋์ฐ๊ณ , ๊ทธ ์์ PostgreSQL๋ฅผ ์ค์นํ ์ํ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ณด์๋ฉด ์๋์ ๊ฐ๋ค. ๋ด๊ฐ ํ๊ณ ์ถ์ ๊ฒ์ ์ฐ๋ถํฌ์์ "CentOS์ ์ค์น๋ PostgreSQL"์ ์ ์ํด์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํด MySQL(๊ฐ๋ฐ DB)๋ก ๋ณด๋ด๋ ๊ฒ! ๊ทธ๋ฅ ์ ์ํ๋ ค๊ณ ํ๋๋ ๊ณ์ connection ์๋ฌ๊ฐ ๋์ ์ฐพ์๋ณด๋.. ์ด๋ฐ ๊ฒฝ์ฐ๋ PostgreSQL์์ ์ธ๋ถ ์ ์์ ํ์ฉํด์ฃผ์ด์ผ ํ๊ณ , ๊ทธ๋ฌ๋ ค๋ฉด ๋ฐ๊ฟ์ผ ํ ์ค์ ๊ณผ ์ค์นํด์ผ ํ ํจํค์ง๋ค์ด ์์ด์ ๊ณผ์ ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค :) 2. ๊ณผ์ 0. ํ์ ํจํค์ง ์ค์น # Ubuntu์ sudo apt-get install -y postgresql-client sudo apt-get install -y postgresql-c..
[๊ต์ก] ์ค์ ! ๋ฐ์ดํฐ๋ชจ๋ธ๋ง
ํ ์์๋๊ป์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ฃผ์ ๋ก ์ฌ๋ด๊ต์ก์ ์งํํ์ ์ ์ฐธ์ฌํ ์ ์๋ ๊ธฐํ๊ฐ ์๊ฒผ๋ค. ์ฐธ์ฌํ ์ค์ต๋ ์๊ณ ์์ ์ ์ตํ๊ณ ์ฌ๋ฐ๋ ๊ต์ก์ด๋ผ๊ณ ํ์ ์ ๊ธฐ๋๋ฅผ ์๋ฉ ํ๊ณ ๊ฐ๋ค. ํ๊ต์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ ์์ ๋ ๋ฐฐ์ด ๋ด์ฉ๋ ์๋ก์๋ก ์๊ฐ์ด ๋๊ณ ์ต๊ทผ์ ๊ณ์ ๋ชจ๋ธ๋ง ์์ ์ ํ๊ณ ์์ด์ ๋ด์ฉ์ด ๋ ์ ๋ค๋ฆฌ๊ธฐ๋ ํ๊ณ , ํ์ ํฌ์ธํธ๊น์ง ์ ์ ์๋ ๊ฐ์ง ์๊ฐ์ด์๋ค. ๋ค๋ฅธ ๋ถ์๋ถ๋ค์ ๋ง๋๋ ์์ฒด๋ ์ฌ๋ฐ์๋๋ฐ ๋ค๋ค ์ ์ฐธ์ฌํด์ฃผ์๊ณ , ์๊ธฐ๋ ์ ํตํด์ ์ฆ๊ฑฐ์ด ์๊ฐ์ด์๋ค. ํนํ ์ค์ต์์ ์์ ๋ชจ๋ธ๋ค์ด ๋ชจ์ฌ์ ๋ง์ง๋ง์ ํ๋์ ๋ชจ๋ธ๋ก ํ์ํ ๋ ๊ฐ๋์ด์๋ค..๐ฅบ (์์๋ ์กด๊ฒฝํฉ๋๋ค..) ๋ฐ์ดํฐ ํ์คํ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๊ฐ ์ค์ํ๋ค! ๋น์ฆ๋์ค์ ๋ชฉ์ ์ด ๋ฐ๋์ง ์๋ ํ, ์ค์ ๋ฐ์ดํฐ๋ ๋ณํ์ง ์๋๋ค. ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ง๋๋๊ฒ ๊ฐ๋ฐ์ ..
ํด๋ฌ์คํฐ ํ ์ด๋ธ๊ณผ ๋ ผํด๋ฌ์คํฐ ํ ์ด๋ธ
ํด๋ฌ์คํฐ ํ ์ด๋ธ vs ๋ ผํด๋ฌ์คํฐ ํ ์ด๋ธ ๋น๊ต ํด๋ฌ์คํฐ๋? ๋์คํฌ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด์ ์์ฃผ ์ฌ์ฉ๋๋ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ๊ฐ์ ์์น์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ ๋น์ทํ ๋ ์ฝ๋๋ค์ ๋์์ ์กฐํํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ํจ์จ์ ์ผ๋ก ์กฐํํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ณ ์๋จ PK๊ฐ ๋น์ทํ ๋ ์ฝ๋๋ผ๋ฆฌ ๋ฌถ์ด์ ์ ์ฅํ๋ ๊ฒ (MySQL) ํด๋ฌ์คํฐ ํ ์ด๋ธ(์ธ๋ฑ์ค) ํ ์ด๋ธ๋น 1๊ฐ์ฉ๋ง ํ์ฉ๋จ PK ์์ฑ ์ ๊ทธ ์ปฌ๋ผ์ ์๋์ผ๋ก ํด๋ฌ์คํฐ ์ธ๋ฑ์ค๊ฐ ์์ฑ๋จ * ์ผ๋ฐ ์ธ๋ฑ์ค์์ ์ฐจ์ด ํด๋ฌ์คํฐ๋ง ๋์ด ์๋ค๋ ์์๊ฐ ์ถ๊ฐ๋จ ์ตํฐ๋ง์ด์ ์์ ์ผ๋ฐ ์ธ๋ฑ์ค๋ณด๋ค ๋์ ๋ญํน PK๋ฅผ ์ค์ ํ์ง ์์ ๊ฒฝ์ฐ๋? InnoDB๊ฐ ๋ค์์ ์ฐ์ ์์๋๋ก ๋์ฒด ์ปฌ๋ผ์ ์ ํ UNIQUE NOT NULL ์ค ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ํด๋ฌ์คํฐ ํค๋ก ์ ํ ์๋์ผ๋ก ์ ๋ํฌํ ๊ฐ์ ๊ฐ์ง๋๋ก..
๋ณธ์ง์๋ณ์์ ์ธ์กฐ์๋ณ์
๋ณธ์ง ์๋ณ์ vs ์ธ์กฐ ์๋ณ์ ๋น๊ต ๋ณธ์ง ์๋ณ์ ์ ๋ฌด์ ์ํด ๋ง๋ค์ด์ง ์๋ณ์ ์ฅ์ PK ์ธ๋ฑ์ค ํ์ฉ ๊ฐ๋ฅ ์ธ์กฐ ์๋ณ์ ์ ๋ฌด์ ์ผ๋ก ๋ง๋ค์ด์ง์ง๋ ์์ง๋ง ๋ณธ์ง ์๋ณ์๊ฐ ๋ณต์กํ ๊ตฌ์ฑ์ ๊ฐ๊ณ ์์ด ์ธ์์ ์ผ๋ก ๋ง๋ ์๋ณ์ ํ๋ณด ์๋ณ์ ์ค PK๋ก ์ ์ ํ ๋ง ํ ๊ฒ์ด ์์ ๋ ์ฌ์ฉ ์ฅ์ ๋ชจ๋ธ์ด๋ SQL์ด ๊ฐ๋จํด์ง ๋จ์ ์ธ์คํด์ค ์์ฑ ๊ธฐ์ค์ ์ธ์กฐ ์๋ณ์๋ง์ผ๋ก ํ๋จํ๊ธฐ ์ด๋ ค์ ๋ชจ๋ธ๋ง ๋ณด๊ณ ์ ๋ฌด๋ฅผ ์ดํดํ๊ธฐ ์ด๋ ค์, ํนํ ํ์ ์ํฐํฐ์์ ๊ฐ๋ ์ฑ์ด ์ ํ๋จ ์ ๋ํฌ ์ธ๋ฑ์ค๋ฅผ ์ถ๊ฐ๋ก ์ฌ์ฉํ์ฌ ์ถ๊ฐ์ ์ผ๋ก ํค๋ฅผ ๊ด๋ฆฌํด์ผ ํจ ์ค๋ณต ๋ฐ์ดํฐ๋ก ์ธํ ํ์ง ๋ฌธ์ PK๋ฅผ ์ธ์กฐ ์๋ณ์๋ก ๊ตฌ์ฑํ ๊ฒฝ์ฐ, PK ์ ์ฝ์ ์ธ์กฐ์๋ณID์ ๋ํด ์ ์ฉ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ค๋ณต ๋ฐ์ดํฐ๊ฐ ๋ฐ์ํ๋๋ผ๋ DBMS์์๋ ๋ง์ ์ ์๊ธฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์ ๋จ์์ ์ฒ๋ฆฌํด์ผ ํ๋ ..
PostgreSQL configuration
๋ฐ์ดํฐ ์์ง ๋ฐฉ์ 1. ๋ฒ์ ๋ณ๋ก DB ์ค์น ํ ์ฐ๊ฒฐํด์ ์ค์๊ฐ์ผ๋ก ์ฟผ๋ฆฌ ๋ ๋ ค์ ๋ฟ๋ ค์ฃผ๊ธฐ 2. ๋ฒ์ ๋ณ๋ก ๋ด์ฉ์ ์ถ์ถํด์ ํ DB์ ๋ฒ์ ๋ณ๋ก ํ ์ด๋ธ ๋ง๋ค์ด์ ์ ์ฅํ๊ธฐ ํ ์ด๋ธ์ ๋ฒ์ ๋ณ๋ก ๋ง๋๋ ์ด์ : ๋ฒ์ ๋ณ๋ก ์ปฌ๋ผ์ด ๋ค๋ฅผ ์ ์๊ธฐ ๋๋ฌธ์ configuration ํ์ธ ์ฟผ๋ฆฌ select * from pg_settings; ์๋์ ๊ฐ์ด ํ์ํ ๋ด์ฉ์ด ํ๋ฒ์ ์กฐํ๋๋ค. postgres.conf์ pg_settings์ ์ฐจ์ด postgres.conf PostgreSQL ์ธ์คํด์ค์ ๋ํ ํ์ฌ ์ค์ ๋ณ์๊ฐ ํฌํจ๋ ํ์ผ ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ์ ์กด์ฌ vi๋ก ์์ ํ ์ ์์ง๋ง ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์กฐ์ํ๊ธฐ ์ฝ์ง ์์ pg_settings ์ธ์คํด์ค์ ๋ํ ํ์ฌ ์ค์ ๋ณ์๊ฐ ํฌํจ๋ ์์คํ ์นดํ๋ก๊ทธ ํ ์ด๋ธ ALTER SYST..
๋งฅ(Mac)์ PostgreSQL ์ค์น + DBeaver ์ฐ๊ฒฐ
PostgreSQL ์ค์น 1. ํฐ๋ฏธ๋์์ brew๋ฅผ ์ด์ฉํ์ฌ ์ค์น brew install postgresql 2. ๋ฒ์ ํ์ธ postgres -V 3. ์์ brew services start postgresql 4. ์ ์ psql postgres ์ ์ ํ์ธ ์ข ๋ฃ brew services stop postgresql DBeaver ์ฐ๊ฒฐ 1. DBeaver ๋ค์ด๋ก๋ ๊ณต์ ์ฌ์ดํธ์ ์ ์ํ์ฌ ์ด์์ฒด์ ์ ๋ง๋ ํ์ผ์ ๋ค์ด๋ก๋ ํ๋ค 2. PostgreSQL ์ ํ 3. ์ ๋ณด ์ ๋ ฅ (์ ์ ์์ฑ ํ ์งํํด์ผํจ) ํ Test Connection ํด๋ฆญ 4. ๋๋ผ์ด๋ฒ ์ค์น 5. ์๋ฃ Reference https://shanepark.tistory.com/186 https://pbj0812.tistory.com/407
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฒซ๊ฑธ์ | 8์ฅ
8. ํ ์ด๋ธ ์ค๊ณ์ ๊ธฐ์ด ํ ์ด๋ธ์ ๊ฐ๋ ๊ณผ ์ ๊ทํ ํ ์ด๋ธ ์ค๊ณ ์ ๊ทํ ์ฒดํฌํฌ์ธํธ ๐ง ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ฃผ๋ฅ๊ฐ ๋ ์ด์ ๋ ๋ฌด์์ผ๊น? โ๏ธ Garbage in, Garbage out ์ด๋ผ๋ ๋ง์ด ์๋ฏ์ด, ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ ์ ์ฅ์ ๋งค์ฐ ์ค์ํจ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ๋งค์ฐ ๋์ ๋จ๊ณ๋ก ์๊ตฌ๋จ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ๋์ด๊ธฐ ์ํ ์ค๊ณ ๋ ธํ์ฐ๊ฐ ๋งค์ฐ ๋ฐ๋ฌํจ ํ ์ด๋ธ ์ค๊ณ ํ ์ด๋ธ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๊ทธ๋ฆ ์ด๊ณผ ํ์ผ๋ก ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ (์์ ) ์ ๋ํฌํ ๊ธฐ๋ณธํค๋ฅผ ๊ฐ์ง๋ ๊ณตํต ์์ฑ์ ๊ฐ์ง ๊ฒ์ ์งํฉ ํ์ค ์ธ๊ณ์ ๊ฐ๋ ์ด๋ ์งํฉ์ ๋ํ๋ธ ๊ฒ ์๋ฒ๋ ์คํ ๋ฆฌ์ง ๊ฐ์ ๋ฌผ๋ฆฌ์ธต๊ณผ ๊ด๊ณ์์ด ๋ ๋ฆฝ์ ์ผ๋ก ์์ฑํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ '๋ ผ๋ฆฌ ์ค๊ณ'๋ผ๊ณ ๋ ๋ถ๋ฆ ์์น ํ ์ด๋ธ์ด๋ ๊ณตํต์ ์ ๊ฐ์ง ์ฌ๋ฌผ์ ์งํฉ์ ๋ํ๋ธ ๊ฒ..
[Redis] ์์ธํ ์์๋ณด๊ธฐ! (8) - ACL
ACL Access Control List์ ์ค์๋ง๋ก redis 6๋ถํฐ ๋์ ๋ ๊ธฐ๋ฅ์ ๋๋ค. ๋ค๋ฅธ RDBMS(MySQL, Oracle ๋ฑ)์๋ ์ ์ ๋ณ๋ก ์ ๊ทผ ๊ฐ๋ฅํ ๋ฒ์๋ฅผ ์ ํ ์ ์์ง๋ง redis์๋ ์ ์ ๋ผ๋ ๊ฐ๋ ์ด ์์์ต๋๋ค. ACL์ ์ ์ ๋ฅผ ์ค์ ํ๊ณ ์คํ ๊ฐ๋ฅํ ์ปค๋งจ๋์ ์ ๊ทผํ ์ ์๋ ํค ์ธก๋ฉด์์ ํน์ ์ฐ๊ฒฐ์ ๊ฐ๋ฅํ๊ฒ ํด์ค๋๋ค. # 1 ACL SETUSER alice on >p1pp0 ~cached:* +get # 2 AUTH alice p1pp0 #1 : alice ๋ผ๋ user๋ฅผ ์์ฑํ๋ค. ์ด๋ฆ ํจ์ค์๋ : p1pp0 ์ ๊ทผ ๊ฐ๋ฅํ ํค ํจํด : cached ๋ก ์์ํ๋ key๋ค์ ์ ๊ทผํ ์ ์๋ค. (allkeys : ๋ชจ๋ ํค์ ์ ๊ทผ ๊ฐ๋ฅ) ์คํ ๊ฐ๋ฅํ ์ปค๋งจ๋ : ์ ๊ทผํ ๋๋ get ๋ง ์ฌ์ฉํ ์ ..
[Redis] ์์ธํ ์์๋ณด๊ธฐ! (7) - Pub/Sub
Pub/Sub - ๋ฉ์์ง ๋ธ๋ก์ปค Pub/Sub์ Publish/Subscribe์ ์ค์๋ง์ ๋๋ค. ๋จ์ด ์์ฒด์ ๊ตฌ๋ /๊ฒ์๋ผ๋ ๋ป์ด ์๋ฏ์ด Redis์์ Pub/Sub ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ์ฑ๋์ ํตํด ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์์ผ๋ก์จ ์๋ก ํต์ ํ ์ ์์ต๋๋ค. ๊ตฌ์กฐ ํด๋ผ์ด์ธํธ๋ ํ๋์ Topic์ "Sub"ํ๊ณ , ํด๋น ํ ํฝ์ "Sub"ํ ๋ค๋ฅธ ๋ชจ๋ ํด๋ผ์ด์ธํธ๋ ํด๋น Topic์์ "Pub"๋๋ ๋ฉ์์ง๋ฅผ ์์ ํฉ๋๋ค. Topic์ด๋ผ๋ ๋งค๊ฐ์ฒด๋ฅผ ํตํด์ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ฏ๋ก ์์ ์์ ๋ฐ์ ์๊ฐ ์๋ก๋ฅผ ์์ง ๋ชปํ๋๋ผ๋ ๋ฉ์์ง๋ฅผ ์ก์์ ํ ์ ์์ต๋๋ค. ํน์ง ๋ฉ์์ง๋ Redis์ ์ ์ฅ๋์ง ์๊ณ ์ฑ๋์ ๊ตฌ๋ ํ๋ ํด๋ผ์ด์ธํธ์ ์ค์๊ฐ์ผ๋ก ์ ์ก๋๋ค๋ ์ ์ ์ ์ํด์ผ ํฉ๋๋ค. ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌ๋๋ฉด ์ด๋ฅผ ๋ฐ๋ก ์ญ์ ํฉ๋๋ค. ์์ ์ด๋ฅผ ํต..
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฒซ๊ฑธ์ | 6์ฅ
6์ฅ. SQL ๋ฌธ์ ๊ธฐ๋ณธ SELECT ๋ฌธ์ ์ดํด SELECT INSERT, UPDATE, DELETE VIEW SUBQUERY JOIN ์ฒดํฌํฌ์ธํธ ๐ง SQL์ ์ ์ฌ์ฉํ ๊น? ์์ฆ์ ORM์ผ๋ก ์์ ์ ๋ง์ด ํ๋๊น SQL.. ์์ธํ ๋ชฐ๋ผ๋ ๋๋๊ฑฐ ์๋๊น? SQL์ ์์์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ผ๊น? โ๏ธ ORM์ SQL์ ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํ์ฌ, ์ ๊ทผ์ฑ์ ์ํด ๋ง๋ค์ด์ง ํ๋์ ๋๊ตฌ ORM์ด ์ ๋์ค๊ฒ ๋์๋์ง SQL ๋์์๋ฆฌ๋ ์ด๋ป๊ฒ ๋๊ฑด์ง ORM์ด ์์ ๋๋ ์ด๋ป๊ฒ ํด์ผํ๋์ง ์ ์ผ ์ค์ํ ๊ฒ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ฒ, DB์ ์ง์ ์ ๊ทผํด์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ํ๊ฑฐ๋ ํํฐ๋ง ํ ์ ์์ด์ผ ํฉ๋๋ค. SELECT ๋ฌธ MySQL CLI๋ฅผ ์คํํ์ฌ ๋ก๊ทธ์ธ์ ํ ํ MySQL ์๋ฒ์ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชฉ๋ก ํ์ mysql> show d..
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฒซ๊ฑธ์ | 5์ฅ
5์ฅ. DBMS๋ฅผ ์กฐ์ํ ๋ ํ์ํ ๊ธฐ๋ณธ ์ง์ ์กฐ์ํ๊ธฐ ์ ์ ์์๋์ด์ผ ํ ๊ฒ โฌ๏ธ MySQL ์ค์น๋ฐฉ๋ฒ โฌ๏ธ 2023.01.18 - [์ธํ๋ผ/NHN Cloud] - NHN Cloud ์ธ์คํด์ค์ MySQL ์ค์นํ๊ธฐ (1) - ์์ถํ์ผ ์ด์ฉ 2023.01.18 - [์ธํ๋ผ/NHN Cloud] - NHN Cloud ์ธ์คํด์ค์ MySQL ์ค์นํ๊ธฐ (2) - Yum ์ด์ฉ 2023.01.18 - [์ธํ๋ผ/NHN Cloud] - NHN Cloud ์ธ์คํด์ค์ MySQL ์ค์นํ๊ธฐ (3) - ์ค์ MySQL๊ณผ ์ปค๋ฅ์ ๋ง๋ค๊ธฐ ๋ก๊ทธ์ธ ๋ก๊ทธ์ธ ์ฑ๊ณต: MySQL์ด๋ผ๋ DBMS์ ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํด์ ์กฐ์ํ ์ ์๊ฒ ๋ ์ํ mysql> : ํ๋กฌํํธ, ์ฌ์ฉ์ ๋ช ๋ น์ ์ ๋ ฅ ๋ฐ์ ์ ์๋ ์ํ ์ปค๋ฅ์ ๋ก๊ทธ์ธํด์ ํ๋กฌํํธ๊ฐ ํ์๋์๋ค๋ ..
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฒซ๊ฑธ์ | 4์ฅ
4์ฅ. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํคํ ์ฒ ๊ตฌ์ฑ ๊ฒฌ๊ณ ํ๊ณ ๊ณ ์์ ์์คํ ์ ๊ตฌ์ถํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํคํ ์ฒ ํด๋ฌ์คํฐ๋ง ๋ฆฌํ๋ฆฌ์ผ์ด์ ์ค๋ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํคํ ์ฒ ๐ก ์ํคํ ์ฒ๋ ์์คํ ์ ๋ง๋ค๊ธฐ ์ํ ๋ฌผ๋ฆฌ ๋ ๋ฒจ์ ์กฐํฉ โก๏ธ ํ๋์จ์ด์ ๋ฏธ๋ค์จ์ด์ ๊ตฌ์ฑ = ์ด๋ค ๊ธฐ๋ฅ์ ๊ฐ์ง ์๋ฒ๋ฅผ ์ค๋นํ๊ณ ์ด๋ ํ ์ ์ฅ์๋ ๋คํธ์ํฌ ๊ธฐ๊ธฐ์ ์กฐํฉํ ๊ฒ์ธ์ง? 1. ์ญ์ฌ์ ๊ฐ์ ์ํคํ ์ฒ์ ์ญ์ฌ '์ํคํ ์ฒ'๋ผ๋ ๋ง์ ์ถ์์ ์ด์ด์ ๋ฑ ๋ค์์ ๋ ์ด๋ฏธ์ง๋ฅผ ๋ ์ฌ๋ฆฌ๊ธฐ๊ฐ ์ฝ์ง ์๋ค. ๊ทธ๋์ ๊ตฌ์ฒด์ ์ธ ์์คํ ๊ตฌ์ฑ์ ์๋ก ๋ค์ด๋ณด๋ ค๊ณ ํ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ดํ ์ํคํ ์ฒ์ ์ญ์ฌ๋ ๋ค์ 3๋จ๊ณ๋ก ๋๋์ด์ง๋ค. 1) Stand-alone (~1980๋ ๋) 2) ํด๋ผ์ด์ธํธ/์๋ฒ (1990๋ ๋~2000๋ ) 3) Web 3๊ณ์ธต (2000๋ ~ํ์ฌ) 1) Stand-alone ..
[MySQL] Transaction Isolation Level๊ณผ Lock
Transaction์ ํน์ฑ ํธ๋์ญ์ ์ DBMS์์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋ ์ต์ํ์ ์์ (unit of work) ํธ๋์ญ์ ์ ์๋์ 4๊ฐ์ง ํน์ฑ์ธ ACID๋ฅผ ๋ณด์ฅํด์ผ ํ๋ค. ์์์ฑ(Atomicity) ์ผ๊ด์ฑ(Consistency) ๊ฒฉ๋ฆฌ์ฑ(Isolation) ์ง์์ฑ(Durability) Transaction Isolation Level ๊ทธ๋ฐ๋ฐ ACID๋ฅผ ์๊ฒฉํ๊ฒ ์งํค๋ค ๋ณด๋ฉด ๋์์ฑ(Concurrency)๊ฐ ๋งค์ฐ ๋จ์ด์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค. ๊ทธ๋์ DB ์์ง์ ACID๋ฅผ ํฌ์ํด์ ๋์์ฑ์ ์ป์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋๋ฐ ๊ทธ๊ฒ์ด ๋ฐ๋ก ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ๋ ๋ฒจ์ด๋ค. ๊ฒฉ๋ฆฌ์ฑ์ ๋ ์งํค๋ level์ ์ฌ์ฉํ ์๋ก ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ์ปค์ง์ง๋ง ๋์์ ๋ ๋์ ๋์์ฑ์ ์ป์ ์ ์๋ค. ์ผ๊ด์ฑ(Consistency)์ ๋์์ฑ(Concur..
[MySQL] SSL ๋ณด์ ์ ์๋ฐฉ๋ฒ
โ ๊ณต์๋ฌธ์ 4.4.3 mysql_ssl_rsa_setup — SSL/RSA ํ์ผ ์์ฑ 6.3.3.1 MySQL์ ์ฌ์ฉํ์ฌ SSL ๋ฐ RSA ์ธ์ฆ์ ๋ฐ ํค ์์ฑ SSL์ด๋? 1994๋ Nescape ์ฌ์์ ๊ฐ๋ฐํ ๋ณด์๊ธฐ์ ๋ก Secure Sockets Layer์ ์ฝ์์ด๋ค. ํ์ฌ๋ ํ์ค ๋ณด์๊ธฐ์ ๋ก ์ฌ์ฉ๋๊ณ ์์ผ๋ฉฐ SSL์ ์ฌ์ฉ์ ์ค๋ํ๊ณผ ํผ์ฑ์ ๋ฐฉ์งํ ์ ์๋ค. SSL/RSA ํ์ผ ์์ฑ MySQL ์ค์น์ ๋ฒ์ ๋ณ๋ก SSL ํ์ ์ฌ๋ถ๊ฐ ๋ฌ๋ผ์ง๋ค. SSL์ ์ฌ์ฉํ๋ ๋ณด์ ์ฐ๊ฒฐ์ ์ง์ํ๊ณ , ์ํธํ๋์ง ์์ ์ฐ๊ฒฐ์์ RSA๋ฅผ ์ฌ์ฉํ๋ ๋ณด์ ์ํธ ๊ตํ์ ์ง์ํ๋๋ฐ ํ์ํ SSL ์ธ์ฆ์ ๋ฐ ํค ํ์ผ๊ณผ RSA ํค ์ ํ์ผ์ ์์ฑํ๋ค(ํด๋น ํ์ผ์ด ์๋ ๊ฒฝ์ฐ). ๊ธฐ์กด SSL ํ์ผ์ด ๋ง๋ฃ๋ ๊ฒฝ์ฐ ์ SSL ํ์ผ์ ์์ฑํ ์ ..
[MySQL] InnoDB ๋ฒํผ ํ์ ๋ํด์
Buffer Pool InnoDB ๋ฒํผ ํ์ InnoDB์์ ๊ฐ์ฅ ํต์ฌ์ ์ธ ๋ถ๋ถ MySQL ์ฑ๋ฅ ํ๋์ ์ค์ํ ์ธก๋ฉด innodb_buffer_pool_size๋ก ์ค์ ํ๊ณ , ์ ์ฒด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ 50~80% ์์ค์ผ๋ก ์ค์ ๋ฒํผ ํ ๋ฉ๋ชจ๋ฆฌ๋ ํ์ด์ง๊ณผ ์บ์ ํจ์จ์ฑ์ ์ํด LRU ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๋ฆฌ์คํธ ํํ ์ธ๋ฑ์ค ์ค๊ณ์ ์ ๋์ด ์์ง๋ง ์ฌ๋ก์ฐ ์ฟผ๋ฆฌ๊ฐ ํด๊ฒฐ๋์ง ์๋๋ค๋ฉด ์ด ๋ถ๋ถ์ ์์ฌํด ๋ด์ผ ํ๋ค. ์ฌ์ฉ๋๊ณ ์๋ ์ํ ํ์ธ ์ฟผ๋ฆฌ SHOW STATUS LIKE '%innodb_buffer_pool%'; innodb_buffer_pool_size ๋ฒํผ ํ์ ํฌ๊ธฐ๊ฐ ํด์๋ก ์ฑ๋ฅ์ ์ ๋ฆฌํจ ๋ฒํผ ํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํ ํฐ ์์ผ๋ก ํ ๋น๋์ด ์๋ค๋ฉด innodb๋ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฒ๋ผ ๋์ ๋์คํฌ์ ๋ฐ์ดํฐ ํ์ผ์ด๋ ์ธ๋ฑ์ค ..
RealMySQL 8.0 | 4.2 InnoDB ์คํ ๋ฆฌ์ง ์์ง ์ํคํ ์ฒ
RealMySQL 8.0 ์ ์ฝ๊ณ ์ ๋ฆฌํ์ต๋๋ค. InnoDB ์คํ ๋ฆฌ์ง ์์ง ์ํคํ ์ฒ InnoDB → MySQL์ ์คํ ๋ฆฌ์ง ์์ง ๊ฐ์ด๋ฐ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ , ๊ฑฐ์ ์ ์ผํ๊ฒ ๋ ์ฝ๋ ๊ธฐ๋ฐ์ ์ ๊ธ์ ์ ๊ณตํ์ฌ ๋์์ฑ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ณ , ์์ ์ ์ด๋ฉฐ ๋ฐ์ด๋ ์ฑ๋ฅ ๊ตฌ์กฐ 4.2.1 ํ๋ผ์ด๋จธ๋ฆฌ ํค์ ์ํ ํด๋ฌ์คํฐ๋ง InnoDB์ ๋ชจ๋ ํ ์ด๋ธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ผ์ด๋จธ๋ฆฌ ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ํด๋ฌ์คํฐ๋ง ๋์ด ์ ์ฅ → ์ฆ, ํ๋ผ์ด๋จธ๋ฆฌ ํค ๊ฐ์ ์์๋๋ก ๋์คํฌ์ ์ ์ฅ๋์ด → ํ๋ผ์ด๋จธ๋ฆฌ ํค์ ์ํ ์ค์บ์ ์๋นํ ๋นจ๋ฆฌ ์ฒ๋ฆฌ๋จ ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฟผ๋ฆฌ์ ์คํ ๊ณํ์์ ํ๋ผ์ด๋จธ๋ฆฌ ํค๋ ๋ค๋ฅธ ๋ณด์กฐ ์ธ๋ฑ์ค์ ๋นํด ๋์ ๋น์ค์ผ๋ก ์ค์ InnoDB ํ ์ด๋ธ ๊ตฌ์กฐ = ์ค๋ผํด์ IOT(Index Organized Table) ๊ตฌ์กฐ 4.2.2 ์ธ๋ ํค ์ง์ Only In..
RealMySQL 8.0 | 4.1 MySQL ์์ง ์ํคํ ์ฒ
RealMySQL 8.0 ์ ์ฝ๊ณ ์ ๋ฆฌํ์ต๋๋ค. 4.1.1 ์ ์ฒด ๊ตฌ์กฐ MySQL ์๋ฒ = ์ฌ๋์ ๋จธ๋ฆฌ ์ญํ ์ ๋ด๋นํ๋ MySQL ์์ง + ์๋ฐ ์ญํ ์ ๋ด๋นํ๋ ์คํ ๋ฆฌ์ง ์์ง MySQL ์์ง ์ปค๋ฅ์ ํธ๋ค๋ฌ : ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ปค๋ฅ์ ๋ฐ ์ฟผ๋ฆฌ ์์ฒญ์ ์ฒ๋ฆฌ SQL ์ธํฐํ์ด์ค : DML, DDL, Procedure, View ๋ฑ SQL ์ธํฐํ์ด์ค ์ ๊ณต SQL ํ์ : SQL ๋ฌธ๋ฒ ์ค๋ฅ ํ์ง ๋ฐ SQL ์ฟผ๋ฆฌ ๋ฌธ์ฅ์ MySQL์ด ์ฒ๋ฆฌํ๊ธฐ ์ข์ ํ ํฐ ๋จ์๋ก ๋๋ ์ ํธ๋ฆฌ ํํ๋ก ํ์ฑํ๋ ์์ ๋ด๋น SQL ์ตํฐ๋ง์ด์ : ์ฟผ๋ฆฌ์ ์ต์ ํ๋ ์คํ์ ๋ด๋น ์บ์ & ๋ฒํผ : ์ฑ๋ฅ ํฅ์์ ์ํ ๋ณด์กฐ ์ ์ฅ์ ๊ธฐ๋ฅ ๋ด๋น ์คํ ๋ฆฌ์ง ์์ง ํธ๋ค๋ฌ API๋ฅผ ๋ง์กฑํ๋ฉด ๋๊ตฌ๋ ์ง ์คํ ๋ฆฌ์ง ์์ง์ ๊ตฌํํ์ฌ MySQL์ ์ถ๊ฐํ์ฌ ์ฌ์ฉํ ์ ์์ ์ค์ ..
[Redis] ์์ธํ ์์๋ณด๊ธฐ! (6) - ํ์ฉ ์์ ์ ์ฅ์ ํฌ์ธํธ
ํ์ฉ ์์ Counting Strings ๋จ์ ์ฆ๊ฐ ์ฐ์ฐ INCR / INCRBY / INCRBYFLOAT / HINCRBY / HINCRBYFLOAT / ZINCRBY Bits ๋ฐ์ดํฐ ์ ์ฅ๊ณต๊ฐ ์ ์ฝ ์ ์๋ก ๋ ๋ฐ์ดํฐ๋ง ์นด์ดํ ๊ฐ๋ฅ userid ๊ฐ์ด 0 ์ด์์ ์ ์๊ฐ์ผ ๋๋ง ์นด์ดํ ์ด ๊ฐ๋ฅ ์ํ์ ํ ๊ฐ์ด ์์ ๋์๋ ์ฌ์ฉ ๋ถ๊ฐ SETBIT / BITCOUNT HyperLogLogs ๋๋์ ์ ๋ํฌํ ๋ฐ์ดํฐ๋ฅผ ์นด์ดํ ํ ๋ ์ ์ set๊ณผ ๋น์ทํ์ง๋ง ์ ์ฅ๋๋ ์ฉ๋์ด ๋งค์ฐ ์์ ์น์ฌ์ดํธ์ ๋ฐฉ๋ฌธํ ์ ๋ํฌํ IP ์ / ํ๋ฃจ ์ข ์ผ ํฌ๋กค๋งํ URL ์ / ๊ฒ์์์ง์์ ๊ฒ์๋ ์ ๋ํฌํ ๋จ์ด ์ PFADD / PFCOUNT / PFMERGE Messaging Lists ์์ฒด์ ์ผ๋ก blocking ๊ธฐ๋ฅ์ ์ ๊ณตํด์ Event ..
[Redis] ์์ธํ ์์๋ณด๊ธฐ! (5) - ์ํคํ ์ฒ
Replication replicaof ์ปค๋งจ๋๋ก ๊ฐ๋จํ๊ฒ ๋ณต์ ์ฐ๊ฒฐ ๋น๋๊ธฐ์ ๋ณต์ Master๊ฐ ๋ค์ด๋๋๋ผ๋ Replica๊ฐ ์๋น์ค๋ฅผ ๊ณ์ ํ ์ ์์ HA ๊ธฐ๋ฅ์ด ์์ผ๋ฏ๋ก ์ฅ์ ์ํฉ ์ ์๋ ๋ณต๊ตฌ replicaof no one ์๋ฒ ๋ค์ด์ AOF ๋๋ RDB๋ก ์ฌ์์ replication ๊ณผ์ ์์ fork๊ฐ ๋ฐ์ํ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ๋ฐ์ ๊ฐ๋ฅ ํน์ ์ปค๋งจ๋ disable ํ๊ธฐ Sentinel ์ผํฐ๋์ ์ผ๋ฐ ๋ ธ๋๋ค์ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ํฐ๋ง(monitoring)ํ๋ ์ญํ ์๋ ํ์ผ์ค๋ฒ ๊ฐ๋ฅํ HA ๊ตฌ์ฑ ๋ง์คํฐ๊ฐ ๋น์ ์์ด๋ฉด ์๋ ํ์ผ์ค๋ฒ(Automatic Failover) ์ฐ๊ฒฐ ์ ๋ณด ๋ณ๊ฒฝ ํ์ ์์ ์ผํฐ๋ ๋ ธ๋๋ ํญ์ 3๋ ์ด์, ํ์๋ก ์กด์ฌํด์ผ ํจ ๊ณผ๋ฐ์ ์ด์์ ์ผํฐ๋์ด ๋์ํด์ผ ํ์ผ์ค๋ฒ ์งํ ์) ๋คํธ์ํฌ์ ์ ..
[Redis] ์์ธํ ์์๋ณด๊ธฐ! (4) - ์์์ฑ
๋ฐ์ดํฐ ์ด์๊ณผ ๊ด๋ จ๋ ๊ฒ์ผ๋ก redis์ ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ ์ ์ฅํ ์ ์๋ 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. Redis๋ In-memory ๋ฐ์ดํฐ ์คํ ์ด ์๋ฒ ์ฌ์์ ์ ๋ชจ๋ ๋ฐ์ดํฐ ์ ์ค ๋ณต์ ๊ธฐ๋ฅ์ ์ฌ์ฉํด๋ ์ฌ๋์ ์ค์ ๋ฐ์ ์ ๋ฐ์ดํฐ ๋ณต์ ๋ถ๊ฐ Redis๋ฅผ ์บ์ ์ด์ธ์ ์ฉ๋๋ก ์ฌ์ฉํ๋ค๋ฉด ์ ์ ํ ๋ฐ์ดํฐ ๋ฐฑ์ ํ์ AOF Append Only File ๋ฐฉ์ ๋ชจ๋ write/update ์ปค๋งจ๋๋ฅผ log ํ์ผ์ ๊ธฐ๋กํ๋ ํํ redis ํ๋กํ ์ฝ ํํ๋ก ์ ์ฅ RDB snapshot ๋ฐฉ์ ์๊ฐ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ด์ฉ์ disk์ ์ฎ๊ฒจ๋ด๋ ๋ฐฉ์ ๋ฐ์ด๋๋ฆฌ ํ์ผ ํํ๋ก ์ ์ฅ AOF vs RDB ์ ํ ๊ธฐ์ค redis๋ฅผ ์บ์๋ก๋ง ์ฌ์ฉํ๋ค๋ฉด ๋ ๋ค ์ธ ํ์ ์๋ค. 1. ๋ฐฑ์ ์ ํ์ํ์ง๋ง ์ด๋ ์ ๋ ๋ฐ์ดํฐ ์์ค์ด ๋ฐ์ํด๋ ๊ด์ฐฎ์ ๊ฒฝ์ฐ ..
[Redis] ์์ธํ ์์๋ณด๊ธฐ! (3) - ์บ์ฑ ์ ๋ต
๋ฐ์ดํฐ ์ ํ๊ณผ ํด๋น ๋ฐ์ดํฐ์ ๋ํ ์ก์ธ์ค ํจํด์ ์ ๊ณ ๋ คํด์ ์ ํํด์ผ ํ๋ค. ์ฝ๊ธฐ ์ ๋ต Look-Aside(Lazy Loading) ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ์์ ์ด ๋ง์ ๋ ์ฌ์ฉ (๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ) Cache Hit ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ค. ๋จผ์ cache ์๋ฒ(redis)๋ฅผ ํ์ธํ๋ค. cache์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด DB๋ฅผ ์กฐํํ์ง ์๊ณ cache์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ๋ฐํํ๋ค. (Cache Hit) Cache Miss ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ค. ๋จผ์ cache ์๋ฒ(redis)๋ฅผ ํ์ธํ๋ค. cache ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด DB๋ฅผ ์กฐํํ์ฌ cache ์๋ฒ์ ์ ์ฅํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ค. (Cache Miss) Lazy Loading cache๋ ์ฐพ๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋์๋ง ์ ๋ ฅ๋๊ธฐ ๋๋ฌธ์ lazy loading์ด๋ผ๊ณ ..
[Redis] ์์ธํ ์์๋ณด๊ธฐ! (2) - ๋ฐ์ดํฐ ํ์
Redis๋ ๋ค์ํ ๋ฐ์ดํฐ ํ์ ๊ณผ ๋ฐ์ดํฐ ํ์ ๋ณ ์ปค๋งจ๋๋ฅผ ์ ๊ณตํฉ๋๋ค. Key ์ค์ ํฌ์ธํธ Key๋ ๋ฌธ์์ด์ด๋ฏ๋ก ์ต๋ 512MB๊น์ง ๊ฐ๋ฅ ๊ธธ์ด ๋ฑ ๊ฐ๋ ์ฑ์ ๊ณ ๋ คํด์ผํ๊ณ , ์คํค๋ง๋ฅผ ์ ์งํ ์ ์๋๋ก ์ค๊ณํ ๊ฒ ex) user:1000:followers Strings ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ Redis ๋ฐ์ดํฐ ์ ํ ํ ์คํธ, ์ง๋ ฌํ๋ ๊ฐ์ฒด ๋ฐ ์ด์ง ๋ฐฐ์ด์ ํฌํจํ ๋ฐ์ดํธ ์ํ์ค๋ฅผ ์ ์ฅ, ์ด๋ฏธ์ง ์ ์ฅ ๊ฐ๋ฅ ์บ์ฑ์ ์์ฃผ ์ฌ์ฉ๋์ง๋ง ์นด์ดํฐ๋ฅผ ๊ตฌํํ๊ณ , ๋นํธ ์ฐ์ฐ์ ์ํํ ์ ์๋ ๊ธฐ๋ฅ๋ ์ ๊ณต ๋จ์ผ ๋ฌธ์์ด์ ์ต๋ 512MB ์ ๋ฌธ์์ด ์ ์ฅํ๊ณ ๊ฒ์ > SET user:1 minju OK > GET user:1 "minju" ์ง๋ ฌํ๋ JSON ๋ฌธ์์ด ์ ์ฅํ๊ณ ์ง๊ธ๋ถํฐ 100์ด ํ์ ๋ง๋ฃ๋๋๋ก ์ค์ > SET ticket:27 "\"..
[Redis] ์์ธํ ์์๋ณด๊ธฐ! (1) - ๊ฐ๋ ๋ฐ ํน์ง
redis๋? โ ๊ณต์๋ฌธ์์์๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋์ด ์์ต๋๋ค. Redis๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์บ์, ๋ฉ์์ง ๋ธ๋ก์ปค ๋ฐ ์คํธ๋ฆฌ๋ฐ ์์ง์ผ๋ก ์ฌ์ฉ๋๋ ์คํ ์์ค(BSD ๋ผ์ด์ผ์ค), ๋ฉ๋ชจ๋ฆฌ ๋ด ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ ์ฅ์์ ๋๋ค. Redis๋ strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. Redis๋ ๊ธฐ๋ณธ ์ ๊ณต ๋ณต์ , Lua ์คํฌ๋ฆฝํ , LRU ์ ๊ฑฐ, ํธ๋์ญ์ ๋ฐ ๋ค์ํ ์์ค์ ์จ๋์คํฌ ์ง์์ฑ์ ๊ฐ์ถ๊ณ ์์ผ๋ฉฐ Redis Sentinel์ ํตํ ๊ณ ๊ฐ์ฉ์ฑ ๋ฐ Redis ํด๋ฌ์คํฐ๋ฅผ ํตํ ์๋ ํํฐ์ ๋์ ์ ๊ณตํฉ๋๋ค. redis๋ remot..
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฒซ๊ฑธ์ | 3์ฅ
์ ์ฐ๋ฆฌ๋ ์์คํ ์ ๋์ ๋ด๋๊ฐ ์์คํ ์ด๋ ๋ฌด์์ ์ํด ๋์ ํ๋๊ฐ? → ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฌด์์ ์ํด ๋์ ํ๋๊ฐ? → ์ ์์คํ ์ ๋์ ๋ด๋๊ฐ? ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๊ธฐ๋น์ฉ ์์คํ ์ ์ ์ฒด๋น์ฉ ๋ด์ญ ์ด๊ธฐ๋น์ฉ : ์ต์ด์ ์ง๊ธํ๋ ๋ ์ด์๋น์ฉ : ์๋น์ค๋ฅผ ์ด์ฉํ๋ ๊ธฐ๊ฐ์ ๊ณ์ํด์ ์ง๊ธํ๋ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ด์๋น์ฉ์ ๋จ์ ๊ธ์ก(์ ๋น์ฉ์ด๋ ์ฐ๊ฐ ๋น์ฉ)์ ์ด๊ธฐ๋น์ฉ๋ณด๋ค ๋ฎ๊ฒ ์ค์ ๋จ ํ์ง๋ง ์ด๊ธฐ๋น์ฉ < ์ด์๋น์ฉ ํฉ์ธ ๊ฒฝ์ฐ๋ ๋๋ฌผ์ง ์์ ์ด๊ธฐ๋น์ฉ๊ณผ ์ด์๋น์ฉ์ ๋น์จ์ ๋ฐ๊ฟ์ ์ ์ฒด๋น์ฉ์ ๋ฎ๊ฒ ๋ณด์ด๋ ค๋ ์ฌ๋ฆฌ์ ์ธ ํธ๋ฆญ๋ ์์ ๋ผ์ด์ ์ค ์๊ธ๊ณผ ๊ฐ๊ฒฉ์ ์ฐจ์ด ๋ผ์ด์ ์ค : ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋์ ํ ๋ ์ด๊ธฐ๋น์ฉ, ์ํํธ์จ์ด ์ฌ์ฉํ๊ฐ๋ฃ ์ฐจ์ด ํ๋งค๋จ์๊ฐ ํน์ํ๋ค ์ด์๋น์ฉ์ ์ง๊ธํ์ง ์์ผ๋ฉด ํ์ค์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ํ๋ก์ธ์ ๋ผ์ด์ ์ค์ ์ฌ์ฉ์ ๋ผ์ด์ ์ค ..