redis로 지속성을 비활성화하는 방법은 무엇입니까?


91

redis에서 존재를 비활성화하는 방법이 궁금합니다. http://redis.io/topics/persistence 에서이를 수행 할 수있는 가능성에 대한 언급이 있습니다 . 나는 거기에 설명 된 것과 똑같은 의미로 그것을 의미합니다. 어떤 도움이라도 대단히 감사하겠습니다!


나는 이것에 대한 공식 웹 사이트에 지침이없고 이것에 대한 인터넷에 많은 정보가 없다는 것이 짜증 스럽지는 않지만 놀랍다는 것을 알았습니다. ( stackoverflow.com/questions/19581059/… 참조 가 훨씬 더 많고 이). 전반적으로 Redis가 비 영구 데이터베이스로 자주 사용된다는 점을 고려할 때.
Akronix

답변:


111

Redis에서 모든 데이터 지속성 을 비활성화하려면 redis.conf파일 에서 다음을 수행 하십시오.

  1. appendonly구성 지시문을 no(기본값) 로 설정하여 AOF를 비활성화합니다 . 이렇게 :

    appendonly no
    
  2. 모든 save구성 지시문 에 주석을 달아 RDB 스냅 샷을 비활성화합니다 (기본적으로 정의 된 3 개가 있습니다).

    #save 900 1
    #save 300 10
    #save 60 10000
    

변경 후 Redis를 다시 시작하여 적용하십시오.

또는 CONFIG SET명령을 사용하여 런타임 중에 이러한 변경 사항을 적용 할 수 있습니다 ( CONFIG REWRITE변경 사항을 유지하려면 a도 수행해야 함 ).

참고 : Redis 버전에 따라 복제 관련 작업을 위해 Redis가 디스크에 액세스하지 못하도록하는 다른 조정이 있습니다.


1
redis> config set auto-aof-rewrite-percentage 0
toontong

2
세 가지 save지시문 을 주석 처리하여 데이터를 디스크에 저장하지 않도록 Redis를 구성했습니다 . 더 이상 주기적으로 데이터를 스냅 샷하지 않는 것을 볼 수 있습니다. 그러나 서버를 종료 할 때마다 디스크에 .rdb 파일이 기록됩니다. 어쨌든 장애 조치 프로세스로 인해 생성 될 수 있습니까?
Jolta

1
실제로 이것을 효과적으로 만들려면 여기에 나열된 명령을 사용하여 cli를 통해 수행 할 수 있습니다 . stackoverflow.com/a/34736871/2904315 또는이 답변에 설명 된대로 redis.conf 파일을 변경 한 다음 다음을 사용하여 서비스를 다시 시작할 수 있습니다.systemctl restart redis
Akronix

Linux에서 redis.conf파일 위치/etc/redis/redis.conf
Amin Shojaei

77

redis.conf(개발 / 테스트 환경) 을 사용하지 않으려면 다음 명령 줄을 통해 수행 할 수 있습니다.

redis-server --save "" --appendonly no

(redis 서버 3.2.6및에서 테스트 됨 5.0.5)


1
--appendonly no필요한 것이 확실 합니까? 기본적으로 꺼져 있지 않습니까?
aleclarson

4
사실 일 수 있습니다. 하지만 안전을 위해 추가하는 것은 확실히 아프지 않습니다. 우리가 원하는 것은 모든 유형의 지속성을 비활성화하는 것입니다.;)
Kostis

흠, WSL (Ubuntu 16)의 Windows 10에서 저를 위해 작동하지 않았습니다
James Gentes 2019

@JamesGentes 오류가 무엇인지. Redis 5.0.3이 설치된 Fedora 29에서 작동하며 지금 테스트했습니다. Windows에서 다른 방식으로 인수를 전달해야합니까? Redis 버전은 무엇입니까? redis-server --help아마도 약간의 통찰력을 줄 수있을 것입니다
Kostis

1
버전 5.0.5에서도 작동합니다.
abbas

17

AOF (appendonly)는 기본적으로 비활성화되어 있으므로 redis 서비스를 다시 시작 하지 않고 지속성을 비활성화하기 위해 수행해야 할 작업은 구성 저장 을 비활성화하는 것 입니다.

런타임시 비활성화하고 아래 명령 실행 확인

현재 저장 구성 확인

pawan@devops:~$ redis-cli config get save
1) "save"
2) "900 1 300 10 60 10000"

redis.conf 파일에도 동일한 설정이 있습니다.

pawan@devops:~$ grep -w 'save' /etc/redis/redis.conf | grep -v '#'
save 900 1
save 300 10
save 60 10000

구성 저장 비활성화

pawan@devops:~$ redis-cli config set save ""
OK

redis 서비스 재시작시 구성이 영구적으로 유지되도록 새 저장 구성으로 redis.conf 파일 수정

root@ip-172-16-3-114:~# redis-cli config rewrite
OK

새 저장 구성 확인

pawan@devops:~$ redis-cli config get save
1) "save"
2) ""

이제 구성 저장위해 redis.conf 파일을 스캔하면 결과가 없습니다.

pawan@devops:~$ grep -w 'save' /etc/redis/redis.conf | grep -v '#'  
pawan@devops:~$

8

RDB 스냅 샷의 경우 다음을 사용하여 비활성화 할 수 있습니다.

$ sed -e '/save/ s/^#*/#/' -i /etc/redis/redis.conf && sudo service redis-server restart

redis.conf의 저장 줄에 주석을 달고 redis-server를 다시 시작합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.