Làm thế nào để vô hiệu hóa tính bền bỉ với redis?


91

Tôi đã tự hỏi làm thế nào để vô hiệu hóa hiện diện trong redis. Có đề cập đến khả năng thực hiện điều này ở đây: http://redis.io/topics/persistence . Ý tôi là nó theo đúng nghĩa như được mô tả ở đó. Bất kỳ trợ giúp sẽ được rất nhiều đánh giá cao!


Tôi thấy thật ngạc nhiên, nếu không muốn nói là khó chịu, không có hướng dẫn trên trang web chính thức về điều này cũng như không có nhiều thông tin trên internet về điều này (Xem stackoverflow.com/questions/19581059/… có nhiều phiếu bầu hơn và được ghi lại tốt hơn điều này). Nhìn chung, Redis thường được sử dụng như một cơ sở dữ liệu không liên tục.
Akronix

Câu trả lời:


111

Để vô hiệu hóa tất cả tính duy trì của dữ liệu trong Redis, hãy làm như sau trong redis.conftệp:

  1. Tắt AOF bằng cách đặt appendonlychỉ thị cấu hình thành no(nó là giá trị mặc định). như thế này:

    appendonly no
    
  2. Tắt tính năng chụp nhanh RDB bằng cách nhận xét tất cả các savechỉ thị cấu hình (có 3 chỉ thị được xác định theo mặc định)

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

Sau khi thay đổi, hãy đảm bảo rằng bạn khởi động lại Redis để áp dụng chúng.

Ngoài ra, bạn có thể sử dụng CONFIG SETlệnh để áp dụng những thay đổi này trong thời gian chạy (chỉ cần đảm bảo rằng bạn cũng thực hiện CONFIG REWRITEđể duy trì các thay đổi).

Lưu ý: tùy thuộc vào phiên bản Redis của bạn, có những tinh chỉnh khác ngăn Redis truy cập đĩa cho các tác vụ liên quan đến sao chép.


1
redis> config set auto-aof-
rewrite-

2
Tôi đã định cấu hình Redis của mình để không lưu dữ liệu vào đĩa bằng cách nhận xét ba savechỉ thị. Tôi có thể thấy rằng nó không còn chụp nhanh dữ liệu định kỳ nữa. Tuy nhiên, tôi vẫn thấy tệp .rdb được ghi vào đĩa bất cứ khi nào tôi tắt máy chủ của mình. Nó có thể được tạo ra dù sao, có lẽ do quá trình chuyển đổi dự phòng?
Jolta

1
Để thực sự làm điều này hiệu quả, bạn có thể sử dụng các lệnh được liệt kê ở đây để thực hiện qua cli: stackoverflow.com/a/34736871/2904315 Hoặc bạn có thể chỉ cần thay đổi tệp redis.conf như được giải thích trong câu trả lời này và sau đó khởi động lại dịch vụ bằng:systemctl restart redis
Akronix

Trong linux, redis.conftệp nằm ở/etc/redis/redis.conf
Amin Shojaei

77

Nếu bạn muốn tránh chơi với redis.conf(môi trường dev / test), bạn có thể làm điều đó thông qua dòng lệnh với

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

(đã thử nghiệm với máy chủ redis 3.2.65.0.5)


1
Bạn có chắc --appendonly nolà cần thiết không? Không phải nó tắt theo mặc định?
aleclarson

4
Có thể là sự thật. Nhưng chắc chắn nó không làm tổn thương thêm nó ở đó, chỉ để được ở bên an toàn, những gì chúng tôi muốn là để vô hiệu hóa tất cả các loại bền bỉ;)
Kostis

hmm, không làm việc cho tôi trên Windows 10 trong WSL (Ubuntu 16)
James Gentes

@JamesGentes là lỗi gì. Nó hoạt động trong Fedora 29 của tôi với Redis 5.0.3, đã thử nghiệm nó ngay bây giờ. Có lẽ bạn cần chuyển các đối số theo một cách khác trong Windows? Phiên bản Redis là gì? redis-server --helpcó lẽ có thể đưa ra một số thông tin chi tiết
Kostis

1
Hoạt động trên phiên bản 5.0.5.
abbas

17

Vì AOF (appendonly) bị tắt theo mặc định, chỉ có một điều cần làm để vô hiệu hóa tính liên tục mà không cần khởi động lại dịch vụ là tắt lưu cấu hình.

Để tắt nó trong thời gian chạy và xác minh, hãy chạy lệnh bên dưới

Kiểm tra cấu hình lưu hiện tại

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

Cài đặt tương tự cũng sẽ có trong tệp redis.conf

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

Tắt lưu cấu hình

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

Sửa đổi tệp redis.conf với cấu hình lưu mới để cấu hình vẫn tồn tại vĩnh viễn khi khởi động lại dịch vụ redis

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

Xác nhận cấu hình lưu mới

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

Bây giờ nếu bạn quét tệp redis.conf để lưu cấu hình sẽ không có bất kỳ kết quả nào

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

8

Đối với tính năng chụp nhanh RDB, bạn có thể vô hiệu hóa nó bằng cách sử dụng

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

Nó sẽ nhận xét các dòng lưu trong redis.conf và khởi động lại máy chủ redis

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.