Redis의 CONFIG SET명령어

CONFIG SET명령어는 Redis서버가 돌아가고 있는 상태에서 서버를 재시작하지 않고 설정값을 변경하기 위해 사용되는 명령어 입니다.

설정값을 세팅하기 전에 어떤 설정값들이 존재하는지를 CONFIG GET명령어를 통해서 조회를 합니다.

CONFIG SET을 통해서 설정된 값들은 즉시 Redis에 의해 적용되며 다른 값으로 다시 설정할때까지 계속 Redis서버에 남아있게됩니다. 모든 값들은 redis.conf에 설정되는 key-value와 동일하며, CONFIG GET에서 말씀드린대로 아래의 두가지만 예외를 가집니다:

  • 숫자나 사이즈를 기재할때 redis.conf에서는 가능했던 10k, 2gb등 줄여쓰기를 지원하지 않습니다. 정수로된 설정값을 저장할때는 64-bit정수값을 그대로 다 쓰셔야합니다.
  • redis.conf에서 save명령어는 여러개의 정수로 설정값을 받지만 CONFIG SET를 통해서 값을 설정할때는 하나의 문자열로 쓰셔야합니다.

위의 목록에서 두번째 save와 관련된 부분에 대해서 좀더 설명을 드리자면요, redis.conf에 아래와 같은 설정이 있다면:

save 900 1
save 300 10

위의 설정은 최소 1번의 변경이 있었다면 dataset을 900초뒤에 저장하고, 10회의 변경이 있었다면 300초뒤에 저장하라는 뜻이에요. 이걸 CONFIG SET을 통해서 설정한다고 하면 CONFIG SET SAVE "900 1 300 10"이렇게 하셔야하는거죠.

아래는 기본값을 가지던 save의 값을 다른 값으로 변경해보는 예제입니다.

127.0.0.1:6379> CONFIG GET save
1) "save"
2) "3600 1 300 100 60 10000"
127.0.0.1:6379> CONFIG SET SAVE "900 1 300 10"
OK
127.0.0.1:6379> CONFIG GET save
1) "save"

source: https://redis.io/commands/config-set