[Redis] ์ค์น ๋ฐ ์ค์ ๊ณผ์ ์ ๋ฆฌ (+Redis ๋ช ๋ น์ด)
์ค์นํ ์๋ฒ: 202 / ํฌํธ 6379 ์ฌ์ฉ
Name : jemalloc Version : 5.2.1
Name : redis Version : 7.2~rc3
๐ข Redis ์ค์น ๋ฐ ์ค์ ๊ณผ์ ์ ๋ฆฌ
- jemalloc ์ค์น
- redis ์ค์น
- redis ์ค์ ํ์ผ ๊ถํ ๋ณ๊ฒฝ
- redis ์ค์ ํ์ผ ์์ (redis.conf)
- redis ์๋น์ค ๊ธฐ๋
- redis ํ ์คํธ
1 ) jemalloc ์ค์น
https://rpmfind.net/linux/rpm2html/search.php?query=jemalloc
jemalloc-5.2.1-2.el8.x86_64.rpm
[root@username ~]# rpm -ivh ./jemalloc-5.2.1-2.el8.x86_64.rpm
๊ฒฝ๊ณ : ./jemalloc-5.2.1-2.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
Verifying... ################################# [100%]
์ค๋น ์ค... ################################# [100%]
Updating / installing...
1:jemalloc-5.2.1-2.el8 ################################# [100%]
[root@username ~]#
[root@username ~]# rpm -qa jemalloc
jemalloc-5.2.1-2.el8.x86_64
[root@username redis]# rpm -qi jemalloc
Name : jemalloc
Version : 5.2.1
Release : 2.el8
Architecture: x86_64
Install Date: 2023๋
07์ 18์ผ (ํ) ์คํ 01์ 17๋ถ 10์ด
Group : Unspecified
Size : 780757
License : BSD
Signature : RSA/SHA256, 2019๋
10์ 03์ผ (๋ชฉ) ์ค์ 09์ 29๋ถ 23์ด, Key ID 21ea45ab2f86d6a1
Source RPM : jemalloc-5.2.1-2.el8.src.rpm
Build Date : 2019๋
10์ 02์ผ (์) ์คํ 09์ 41๋ถ 14์ด
Build Host : buildhw-08.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager : Fedora Project
Vendor : Fedora Project
URL : http://www.canonware.com/jemalloc/
Bug URL : https://bugz.fedoraproject.org/jemalloc
Summary : General-purpose scalable concurrent malloc implementation
Description :
General-purpose scalable concurrent malloc(3) implementation.
This distribution is the stand-alone "portable" implementation of jemalloc.
์ค์น
# rpm -ivh ./jemalloc-5.2.1-2.el8.x86_64.rpm
ํ์ธ
# rpm -qi jemalloc
2 ) redis ์ค์น
https://rpmfind.net/linux/rpm2html/search.php?query=redis&submit=Search+...&system=&arch=
redis-7.2~rc3-1.el8.remi.x86_64.rpm
[root@username ~]# rpm -ivh ./redis-7.2~rc3-1.el8.remi.x86_64.rpm
๊ฒฝ๊ณ : ./redis-7.2~rc3-1.el8.remi.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 5f11735a: NOKEY
Verifying... ################################# [100%]
์ค๋น ์ค... ################################# [100%]
Updating / installing...
1:redis-7.2~rc3-1.el8.remi ################################# [100%]
[root@username ~]#
[root@username ~]# rpm -qa redis
redis-7.2~rc3-1.el8.remi.x86_64
[root@username redis]# rpm -qi redis
Name : redis
Version : 7.2~rc3
Release : 1.el8.remi
Architecture: x86_64
Install Date: 2023๋
07์ 18์ผ (ํ) ์คํ 01์ 33๋ถ 01์ด
Group : Unspecified
Size : 5689831
License : BSD-3-Clause AND BSD-2-Clause AND MIT AND BSL-1.0
Signature : RSA/SHA256, 2023๋
07์ 10์ผ (์) ์คํ 11์ 26๋ถ 17์ด, Key ID 555097595f11735a
Source RPM : redis-7.2~rc3-1.el8.remi.src.rpm
Build Date : 2023๋
07์ 10์ผ (์) ์คํ 11์ 25๋ถ 12์ด
Build Host : builder.remirepo.net
Relocations : (not relocatable)
Packager : Remi Collet
Vendor : Remi's RPM repository <https://rpms.remirepo.net/> #StandWithUkraine
URL : http://redis.io
Bug URL : https://forum.remirepo.net/
Summary : A persistent key-value database
์ค์น
# rpm -ivh ./redis-7.2~rc3-1.el8.remi.x86_64.rpm
ํ์ธ
#rpm -qi redis
3 ) redis ์ค์ ํ์ผ ๊ถํ ๋ณ๊ฒฝ
ํน์๋ชฐ๋ผ ์๋ณธํ์ผ .bak์ผ๋ก ๋จ๊ฒจ๋๊ณ
[root@username redis]# ll
ํฉ๊ณ 232
-rw-r-----. 1 root root 107559 7์ 18 13:45 redis.conf
-rw-r-----. 1 redis root 107546 7์ 10 23:24 redis.conf.bak
-rw-r-----. 1 redis root 14725 7์ 10 23:24 sentinel.conf
[root@username redis]# ll
ํฉ๊ณ 232
-rw-r--r--. 1 redis root 107572 7์ 18 14:02 redis.conf
-rw-r-----. 1 redis root 107546 7์ 10 23:24 redis.conf.bak
-rw-r-----. 1 redis root 14725 7์ 10 23:24 sentinel.conf
redis.conf ๊ถํ ๋ถ์ฌ
# chmod 750 ./redis.conf
# chown redis ./redis.conf
4 ) redis ์ค์ ํ์ผ ์์ (redis.conf)
redis.conf ํ์ผ ์์
์ถ๊ฐํ ๋ด์ฉ bind 0.0.0.0
daemonize no ๋ฉด ๋ ๋์ค ์๋ฒ ์คํ ์ ์๋ฒ ๋ฉ์์ง(๋ก๊ทธ)๊ฐ ํ๋ฉด์ ํ์๋๊ณ ๋ฆฌ๋
์ค ํ๋กฌํํธ๊ฐ ๋จ์ด์ง์ง ์๋๋ค.
์ฆ ํฌ๊ทธ๋ผ์ด๋(foreground)๋ก ์คํ๋๋ค.
์ด ๊ฒฝ์ฐ Ctrl+C๋ฅผ ํ๋ฉด ๋ ๋์ค ์๋ฒ๊ฐ ์ข
๋ฃ๋๋ค.
๋ ๋์ค ์๋ฒ ์คํ ์ ๋ฐฑ๊ทธ๋ผ์ด๋(background)๋ก ์คํํ๋ ค๋ฉด daemonize yes๋ก ํ๋ค.
๊ทธ๋ฌ๋ฉด ๋ฆฌ๋
์ค ํ๋กฌํํธ๊ฐ ๋ฐ๋ก ๋จ์ด์ง๋ค.
์ด ๊ฒฝ์ฐ ๊ด๋ จ ํ๋ผ๋ฏธํฐ๋ก pidfile์ ํ๋ก์ธ์ค ID๊ฐ ์ ์ฅ๋๋ค.
๊ธฐ๋ณธ์ผ๋ก /var/run/redis.pid ์ด๋ค.
๋ฆฌ๋
์ค cat ๋ช
๋ น์ผ๋ก ํ๋ก์ธ์ค ID๋ฅผ ๋ณผ ์ ์๋ค.
๋ ๋์ค ์๋ฒ๊ฐ ์ฌ๋ฌ๊ฐ ์คํ๋๋ฉด ์ด redis.pid ํ์ผ์๋ ๋ง์ง๋ง ์คํ๋ ํ๋ก์ธ์ค ID๊ฐ ์ ์ฅ๋์ด ์๋ค.
๊ด๋ จ๋ ํ๋ผ๋ฏธํฐ๋ก logfile์ด ์๋ค.
daemonize๋ฅผ yes๋ก ํ๋ฉด ๋ฐ๋์ logfile์ ์ง์ ํด์ ๋ ๋์ค ์๋ฒ ๋ฉ์์ง(๋ก๊ทธ)๋ฅผ ๊ธฐ๋กํ๋๋ก ํ๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ฒ ๋ฉ์์ง๊ฐ ๋ ์๊ฐ๋ค.
์ด๋์ ๊ตฌ๊ธ๋งํ๊ฒ ๊ฐ์๋ฐ.. ์์ ์ ์์ฑํด๋๊ฑฐ๋ผ ์ถ์ฒ๋ฅผ ๋ชป์ฐพ๊ฒ ๋ค๐ข ์ฃ์กํฉ๋๋ค.
๋ณ๊ฒฝํ ๋ด์ฉ demonize no → demonize yes
# supervision tree. Options:
# supervised no - no supervision interaction
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
# supervised auto - detect upstart or systemd method based on
# UPSTART_JOB or NOTIFY_SOCKET environment variables
supervised auto ์ค์
โ redis.conf ์ค์ ์ฃผ์
! ๊ฐ๋ฐ์ค์ redis๋ ํต์ ์ด ์๋์ confํ์ผ ๋ค์ ์์ ํจ
protected-mode
bind
์ค์ ์ ๊ด๊ณ
- protected-mode: yes/no๋ก ์ค์ ํ๋ค. Default๋ yes์ด๋ค.
- Yes์ด๊ณ bind๊ฐ ์ง์ ๋์ด ์์ผ๋ฉด ์ง์ ํ IP๋ก๋ง ์ ์ํ ์ ์๋ค.
- Yes์ด๊ณ bind๊ฐ ์ง์ ๋์ง ์์์ผ๋ฉด(comment) 127.0.0.1 (local)๋ง ์ ์ํ ์ ์๋ค.
- No์ด๊ณ bind๊ฐ ์ง์ ๋์ด ์์ผ๋ฉด ์ง์ ํ IP๋ง ์ ์ํ ์ ์๋ค.
- No์ด๊ณ bind๊ฐ ์ง์ ๋์ง ์์์ผ๋ฉด(comment) ๋ชจ๋ IP๋ก ์ ์ํ ์ ์๋ค.
- bind: IP๋ฅผ ์ง์ ํ๋ค. ์ต๋ 16๊ฐ๊น์ง ์ง์ ํ ์ ์๋ค. ์ฌ๊ธฐ์ ์๋ฏธํ๋ IP๋ ์๋ฒ์ network interface IP์ด๋ค. ์ฆ, ์๋ฒ์์ ๋ฆฌ๋ ์ค ifconfig ๋ช ๋ น์ผ๋ก ๋์ค๋ IP ์ค ์ค์ ๋ก ํต์ ์ ์ฌ์ฉ๋๋ IP๋ฅผ ๋งํ๋ค. ํด๋ผ์ด์ธํธ IP๋ฅผ ์๋ฏธํ๋ ๊ฒ์ด ์๋๋ค. Default๋ 127.0.0.1์ด๋ค.
- requirepass: password๋ฅผ ์ง์ ํ๋ค. Password๋ฅผ ์ง์ ํ๋ฉด ์๋ฒ ์ ์ ํ auth password ๋ช ๋ น์ ์ฐ์ ์คํํด์ผ ํ๋ค.
์ฒ์ ์ค์ ๋
bind 127.0.0.1 -::1bind 0.0.0.0
protected-mode yes
์ด๋ ๊ฒ ์ค์ ๋์ด์์ผ๋ ๋ด ๋ก์ปฌ๊ฐ๋ฐํ๊ฒฝ์์ 202๋ฅผ ๋ชป๋ถ์
→ ์๋? ๋ณด์๋ชจ๋ yes ์ด๊ณ bind์ค์ ์ด ์๊ณ ๋ด IP๋ ์์๊ธฐ ๋๋ฌธ์
๊ทธ๋์ bind๋ฅผ ๋ค ์ฃผ์์ฒ๋ฆฌํ๊ณ no ๋ก ๋ณ๊ฒฝํจ
#bind 127.0.0.1 -::1#bind 0.0.0.0
protected-mode no
→ ์ด๋ฌ๋๊น ๋ด ๋ก์ปฌ์์ ์๋ฒ ์ ์์ด ๊ฐ๋ฅํ๋ค
์ด๊ฑด 202 ๊ฐ๋ฐ์๋ฒ๋๊น bind์ ๋ณด์๋ชจ๋๋ฅผ ํ์ด๋ฒ๋ฆฐ๊ฒ์ด๊ณ
์ด์ํ๊ฒฝ์์ ํ๋ ค๋ฉด
bind ์ง์ ์ํ๊ณ ๋ณด์๋ชจ๋ yes๋ก ํด์ผํ ๊ฒ ๊ฐ๋ค.
5 ) redis ์๋น์ค ๊ธฐ๋
[root@username redis]# systemctl status redis
โ redis.service - Redis persistent key-value database
Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/redis.service.d
โโlimit.conf
Active: active (running) since Tue 2023-07-18 14:22:21 KST; 11min ago
Main PID: 18402 (redis-server)
Status: "Ready to accept connections"
Tasks: 6 (limit: 36568)
Memory: 7.6M
CGroup: /system.slice/redis.service
โโ18402 /usr/bin/redis-server 0.0.0.0:6379
7์ 18 14:22:21 username.localdomain systemd[1]: Starting Redis persistent key-value database...
7์ 18 14:22:21 username.localdomain systemd[1]: Started Redis persistent key-value database.
[root@username redis]# systemctl enable redis
[root@username redis]# ps -ef | grep redis
root 1659 1656 0 7์17 ? 00:00:00 runsv redis
root 1664 1659 0 7์17 ? 00:00:00 svlogd -tt /var/log/gitlab/redis
root 1683 1656 0 7์17 ? 00:00:00 runsv redis-exporter
root 1703 1683 0 7์17 ? 00:00:00 svlogd -tt /var/log/gitlab/redis-exporter
redis 18402 1 0 14:22 ? 00:00:01 /usr/bin/redis-server 0.0.0.0:6379
root 18623 18479 0 14:40 pts/3 00:00:00 grep --color=auto redis
๊ธฐ๋
# systemctl start redis
ํ์ธ
# systemctl status redis
6 ) redis ํ ์คํธ
[root@username redis]# redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> info
์ค์ค์ด๋์ด
์ ์
# redis-cli -p 6379
# redis-cli
pingํ๋ฉด pongํด์ค ใ ใ ๊ท์ฝ๋ค
127.0.0.1:6379> set key1 val1
OK
127.0.0.1:6379> get key1
"val1"
127.0.0.1:6379> del key1
(integer) 1
- get key - key์ ํด๋นํ๋ value ๊ฐ์ ธ์ค๊ธฐ
- set key value - key์ value๋ฅผ ์ ์ฅ
- del key - key๋ฅผ ์ญ์
๊ธฐํ ) ๊ฐ์ข Redis ๋ช ๋ น์ด
- ์ ์ฅ > set [key] [value]
- key ์กฐํ > keys [pattern]
- ๋ชจ๋ key ์กฐํ > keys *
- key ์กด์ฌ ํ์ธ > exist [key] (์์ผ๋ฉด 1, ์์ผ๋ฉด 0)
- key ์ญ์ > del [key]
- key ์์ > rename [key] [newKey]
- value ์กฐํ > get [key]
- value ์์ > set [key] [value]
- ๋ง๋ฃ์๊ฐ ํ์ธ(์ด) > ttl [key]
- ๋ง๋ฃ๊ธฐํ์ด ์๋ ๊ฒฝ์ฐ -1์ ๋ฐํ
- ํค๊ฐ ์์ผ๋ฉด -2๋ฅผ ๋ฐํ
http://redisgate.jp/redis/server/protected-mode.php
PROTECTED-MODE Redis
protected-mode Redis parameter PROTECTED-MODE Redis PROTECTED-MODE protected-mode๋ ๋ ๋์ค ์๋ฒ ๋ฒ์ 3.2.0 ๋ถํฐ redis.conf์ ์ถ๊ฐ๋ ํ๋ผ๋ฏธํฐ์ด๋ค. ์ด๊ฒ์ ๋ณด์์ ํ ์์์ด๋ค. ์ด ๊ธ์์๋ protected-mode์ ๊ฐ์ด ๋ณด
redisgate.jp