sách gpt4 ai đã đi

Phục hồi dữ liệu Redis từ tệp chỉ có chức năng thêm vào?

In lại Tác giả: IT Prince Thời gian cập nhật: 2023-10-29 06:11:03 27 4
mua khóa gpt4 Nike

Nếu chúng ta bật AppendFileOnly trong tệp redis.conf, mọi thao tác thay đổi cơ sở dữ liệu redis sẽ được ghi lại trong tệp này.

Bây giờ, giả sử Redis đã sử dụng toàn bộ bộ nhớ được phân bổ trong chỉ thị "maxmemory" trong tệp redis.conf.

Để lưu trữ nhiều dữ liệu hơn, nó bắt đầu xóa dữ liệu thông qua bất kỳ hành vi nào được chỉ định trong tệp redis.conf (volatile-lru, allkeys-lru, v.v.).

Giả sử một số dữ liệu bị xóa khỏi bộ nhớ chính nhưng nhật ký của nó vẫn tồn tại trong AppendOnlyFile (hãy sửa cho tôi nếu tôi sai). Chúng ta có thể sử dụng AppendOnlyFile này để lấy lại dữ liệu đó không?

Nói một cách đơn giản, tôi muốn hỏi, có cách nào để khôi phục dữ liệu đã xóa vào bộ nhớ chính không? Ví dụ, chúng ta có thể lưu trữ dữ liệu đó trong bộ nhớ đĩa và tải dữ liệu đó vào bộ nhớ chính khi cần không?

1 Câu trả lời

Tôi nhận được câu trả lời này từ Google Groups. Tôi đang chia sẻ nó.

----->

Việc xóa phím được ghi lại trong AOF dưới dạng lệnh DEL rõ ràng, do đó khi tệp được phát lại, tính nhất quán hoàn toàn vẫn được duy trì.

AOF chỉ mộtĐược sử dụng để khôi phục tập dữ liệu sau khi khởi động lại, thay vì sử dụng Redis để cung cấp dịch vụ dữ liệu. Nếu khóa vẫn còn tồn tại trong đó (với lệnh DEL xóa sau đó), cách duy nhất để "khôi phục" khóa là chỉnh sửa thủ công AOF bằng cách xóa phần xóa tương ứng và khởi động lại máy chủ.

-----> Một câu trả lời khác

Như tên gọi của nó, AOF là tệp được thêm vào. Redis không phải là cơ sở dữ liệu. Khi gặp phải bản ghi đã xóa, nó sẽ tìm kiếm bản ghi đã tạo. Theo tôi, việc này sẽ tốn quá nhiều công sức mà lợi ích thu được lại quá ít.

Như đã đề cập trước đó, việc viết lại cấu hình AOF (xem lệnh BGREWRITEAOF làm ví dụ) sẽ xóa mọi khóa đã xóa khỏi AOF và bây giờ bạn không thể khôi phục các khóa đó từ tệp AOF. AOF không phải là phương tiện tốt nhất để khôi phục khóa đã xóa. Mục đích của nó là khôi phục cơ sở dữ liệu như trạng thái trước khi xảy ra sự cố - mà không cần xóa bất kỳ khóa nào.

Nếu bạn muốn khôi phục dữ liệu sau khi đã xóa, bạn cần một loại sao lưu khác. Nhiều khả năng đó là tệp ảnh chụp nhanh (RDB) đã được lưu trữ với ngày/giờ lưu. Nếu bạn biết mình cần khôi phục dữ liệu, hãy chọn tệp ảnh chụp nhanh từ thời điểm bạn biết khóa tồn tại, tải tệp đó vào một phiên bản Redis riêng biệt và truy xuất khóa bằng lệnh RESTORE hoặc GET hoặc lệnh tương tự. Như đã đề cập trước đó, có thể phân tích nội dung của tệp RDB hoặc AOF để trích xuất dữ liệu từ đó mà không cần tải tệp vào phiên bản Redis đang chạy. Nhược điểm của cách tiếp cận này là các công cụ như vậy tách biệt với mã Redis và không phải lúc nào cũng hiểu được những thay đổi trong định dạng dữ liệu tệp cũng như máy chủ Redis. Bạn quyết định phương pháp nào mang lại cho bạn tốc độ và mức độ tin cậy mong muốn.

Về việc khôi phục dữ liệu Redis từ tệp chỉ thêm vào? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/43138111/

27 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com