- Phát triển data.frame theo cách hiệu quả về bộ nhớ
- phát hiện rò rỉ bộ nhớ ruby/ruby on rails
- Không thể giải quyết việc nhập android.support.v7.app
- Ổ cắm miền UNIX và bộ nhớ chia sẻ (tệp được ánh xạ)
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/
Tôi có một bài tập về Redis Pubsub như sau: Nếu nhà xuất bản đăng một tin nhắn nhưng người đăng ký không nhận được thì máy chủ sẽ bị sập. Làm thế nào để người đăng ký nhận được tin nhắn đó khi máy chủ được khởi động lại? Xin hãy giúp tôi, cảm ơn! Câu trả lời hay nhất Trong trường hợp này, tin nhắn sẽ biến mất mãi mãi
Chúng tôi đang sử dụng BlockingDequeue của RedisClient thuộc Service Stack để giữ một số dữ liệu cho đến khi có thể xử lý. Mã gọi trông giống như sử dụng (var client =
Tôi có một máy chủ Redis và nhiều máy khách Redis. Mỗi máy khách Redis là một máy chủ WebSocket+HTTP, bao gồm việc quản lý các kết nối WebSocket. Những WebSocket+HTTP này
Tôi có nhiều phiên bản Redis. Tôi đã tạo một cụm sử dụng nhiều cổng khác nhau. Bây giờ tôi muốn chuyển dữ liệu từ phiên bản redis hiện có sang cụm. Tôi biết cách chuyển dữ liệu từ một phiên bản sang cụm, nhưng tôi không thể thực hiện được khi có nhiều hơn một phiên bản. tối ưu
Cấu hình: Ba phân vùng cụm redis, một máy chủ chính và một máy chủ phụ trên ba nhóm. Khi Master ngừng hoạt động, Lettuce sẽ ngay lập tức phát hiện sự cố mất điện và bắt đầu thử lại. Tuy nhiên, Lettuce không phát hiện ra rằng nô lệ liên quan đã tự thăng cấp lên làm chủ.
Tôi muốn xóa các khóa Redis (và tập dữ liệu của chúng) dựa trên việc truy xuất các khóa đó từ một bộ sưu tập đã chỉ định, ví dụ: HMSET id:1 password 123 category milk HMSET id:2 password 456
Tôi đang viết một bot (có chứa danh sách các lệnh cần vô hiệu hóa) để theo dõi Redis. Nó thực hiện điều này bằng cách thực hiện lệnh vô hiệu hóa, ví dụ: (rename-command ZADD "") Khi tôi khởi động lại bot của mình, nếu danh sách lệnh để vô hiệu hóa thay đổi
Tôi được giao nhiệm vụ sử dụng Publish/Subscribe cho một lượng lớn người nghe. Sau đây là một ví dụ đơn giản về đăng ký từ tài liệu: r = redis.StrictRedis(...) p = r.pubsub() p.subscribe('my-firs
Tôi đã đọc về việc sử dụng Redis Sentinel để chuyển đổi dự phòng. Tôi dự định sẽ có 1 master + 1 slave. Nếu master ngừng hoạt động hơn 1 phút, slave sẽ trở thành master. Tôi biết điều này có trong Sentinel
Lợi ích của việc sử dụng Redis Cluster so với việc chỉ sử dụng Redis thông thường và tạo phân đoạn là gì? Theo tôi, Redis Cluster tập trung nhiều hơn vào bảo mật dữ liệu (để kiến trúc chủ-tớ giải quyết lỗi). Câu trả lời tốt nhất tôi nghĩ là khi bạn cần
Vì Redis làm hết hạn khóa theo cả cách thụ động và chủ động, vậy có cách nào để lấy được khóa ngay cả khi thời gian hết hạn của khóa đã trôi qua (nhưng vẫn tồn tại trong Redis) không? Câu trả lời tốt nhất DEBUG OBJECT myKey sẽ trả về
Tôi muốn sử dụng redis lua để thực hiện lệnh giám sát thay vì lệnh giám sát redis-cli. Nhưng tôi không biết làm thế nào. redis.call('monitor') không hoạt động. Câu trả lời hay nhất Bạn không thể có được
Tôi đã đọc https://github.com/redisson/redisson và tôi thấy rằng có một số thiết lập sao chép Redis (bao gồm hỗ trợ cho AWS ElastiCache và Azure Redis Cache)
Microsoft.AspNet.SignalR.Redis và StackExchange.Redis.Extensions.Core được sử dụng trong cùng một dự án. Cái trước yêu cầu StackExchange.Red
1. Tìm hiểu về Redis Redis (Remote Dictionary Server) là cơ sở dữ liệu NoSQL theo cặp khóa-giá trị dựa trên bộ nhớ. Các tính năng: loại khóa-giá trị, giá trị
1. Giới thiệu về cấu trúc dữ liệu Redis Redis là cơ sở dữ liệu khóa-giá trị. Khóa thường có kiểu String, nhưng kiểu giá trị thì khác nhau. Sau đây là một số ví dụ:
1. Bộ nhớ đệm là gì? Bộ nhớ đệm là bộ đệm để trao đổi dữ liệu. Đây là nơi lưu trữ dữ liệu tạm thời và thường có hiệu suất đọc và ghi cao hơn. Vai trò của bộ nhớ đệm: Giảm tải phần phụ trợ Cải thiện hiệu quả đọc và ghi và giảm thời gian phản hồi Chi phí của bộ nhớ đệm: Chi phí tính nhất quán của dữ liệu Chi phí bảo trì mã
Tôi có một danh sách hồ sơ. Đối với mỗi bản ghi, tôi cần thực hiện một số tính toán phức tạp vì tôi đang tạo chỉ mục đảo ngược trong Redis. Để đạt được bản ghi, nhiều lệnh redis cần được thực thi trong đường ống (sadd là 100 s + set là 1
Tôi có một redis ba nút và một sentinel 3 nút, mọi thứ đều hoạt động tốt, tất cả các master và slave đều được xác minh và các tệp cấu hình sentinel được cập nhật với tất cả các nút redis và sentinel, nhưng vấn đề xảy ra khi redis master ngừng hoạt động và sentinel lại muốn bầu lại nút thua cuộc
Tôi đang cố gắng tính toán thời gian phản hồi giữa các tin nhắn được lưu trữ trong Redis. Nhưng tôi không biết phải làm thế nào. Đầu tiên tôi phải lưu trữ luồng thời gian của chat_messages như thế này ZADD conversation:CONVERSATION_ID
Tôi là một lập trình viên xuất sắc, rất giỏi!