Điều này có nghĩa là trên thực tế, tôi nhận được bản sao lưu cứ sau 60 giây?
KHÔNG . Redis lưu nền sau 60 giây, nếu có ít nhất 10000 khóa đã được thay đổi . Nếu không, nó sẽ không lưu trong nền.
Việc sử dụng appendonly on và appendfsync everysec có gây ra hạ cấp hiệu suất không? Nó sẽ đánh CPU? Tải trọng ghi ở mức cao.
Nó phụ thuộc vào nhiều thứ, v.d. hiệu suất đĩa (SSD VS HDD), tải ghi / đọc (QPS), mô hình dữ liệu, v.v. Bạn cần làm một điểm chuẩn với dữ liệu của riêng bạn trong môi trường cụ thể của bạn.
Khi tôi khởi động lại máy chủ redis với các cài đặt mới này, tôi vẫn sẽ mất 60 giây dữ liệu cuối cùng của mình, đúng không?
KHÔNG . Nếu bạn bật cả AOF và RDB, khi Redis khởi động lại, tệp AOF sẽ được sử dụng để xây dựng lại cơ sở dữ liệu. Vì bạn định cấu hình nó thành appendfsync everysec
, bạn sẽ chỉ mất 1 giây cuối cùng dữ liệu.
Thời gian khởi động lại có phải là điều đáng lo ngại không? Tệp dump.rdb của tôi nhỏ; ~ 90 MB.
Nếu bạn bật AOF và khi Redis khởi động lại, nó sẽ phát lại nhật ký trong tệp AOF để xây dựng lại cơ sở dữ liệu. Thông thường tệp AOF lớn hơn tệp RDB và nó có thể chậm hơn so với việc khôi phục từ tệp RDB. Bạn có nên lo lắng về điều đó? Làm điểm chuẩn với dữ liệu của riêng bạn trong môi trường cụ thể của bạn.
CHỈNH SỬA
THÔNG BÁO QUAN TRỌNG
Giả sử rằng bạn đã đặt Redis để sử dụng lưu RDB và ghi nhiều dữ liệu vào Redis. Sau một lúc, bạn muốn bật tính năng lưu AOF. KHÔNG BAO GIỜ SỬA ĐỔI TỆP CẤU HÌNH ĐỂ BẬT AOF VÀ PHỤC HỒI REDIS, LÚC NÀO BẠN SẼ MẤT TẤT CẢ MỌI THỨ .
Bởi vì, khi bạn đặt appendonly yes
trong redis.conf và khởi động lại Redis, nó sẽ tải dữ liệu từ tệp AOF, bất kể tệp đó có tồn tại hay không. Nếu tệp không tồn tại, nó sẽ tạo một tệp trống và cố gắng tải dữ liệu từ tệp trống đó. Vì vậy, bạn sẽ mất tất cả.
Trên thực tế, bạn không cần phải khởi động lại Redis để bật AOF. Thay vào đó, bạn có thể sử dụng config set
lệnh để bật tự động:config set appendonly yes
.