Tôi đã đối mặt với vấn đề tương tự, lý do chính đằng sau điều này là mức tiêu thụ bộ nhớ (RAM) của redis. Máy EC2 của tôi có RAM 8GB (arounf 7.4 có sẵn để tiêu thụ)
Khi chương trình của tôi đang chạy, mức sử dụng RAM lên tới 7,2 GB, hầu như không có ~ 100 MB RAM, điều này thường kích hoạt MISCONF Redis error ...
Bạn có thể xác định mức tiêu thụ RAM bằng htop
lệnh. Tìm thuộc tính Mem sau khi chạy lệnh htop. Nếu nó cho thấy mức tiêu thụ cao (như trong trường hợp của tôi thì đó là 7.2GB / 7.4GB) Tốt hơn hết là nâng cấp thể hiện với Bộ nhớ lớn hơn. Trong trường hợp này, việc sử dụng config set stop-writes-on-bgsave-error no
sẽ là một thảm họa cho máy chủ và có thể dẫn đến phá vỡ các dịch vụ khác đang chạy trên máy chủ (nếu có). Vì vậy, tốt hơn hết là tránh lệnh config và NÂNG CẤP MÁY GIẢM GIÁ CỦA BẠN .
FYI: Bạn có thể cần phải cài đặt htop để thực hiện công việc này:sudo apt-get install htop
Một giải pháp nữa cho vấn đề này có thể là một số dịch vụ nặng RAM khác đang chạy trên hệ thống của bạn, kiểm tra dịch vụ khác đang chạy trên máy chủ / máy / thể hiện của bạn và dừng nó nếu không cần thiết. Để kiểm tra tất cả các dịch vụ đang chạy trên máy của bạn, hãy sử dụngservice --status-all
Và một gợi ý cho những người dán trực tiếp lệnh config, vui lòng tìm kiếm lại một chút và ít nhất cảnh báo người dùng trước khi sử dụng các lệnh đó. Và như @Rodrigo đã đề cập trong bình luận của mình: "Thật không hay khi bỏ qua các lỗi."
--- CẬP NHẬT ---
YOu cũng có thể định cấu hình maxmemory
và maxmemory-policy
xác định hành vi của Redis khi đạt đến giới hạn bộ nhớ cụ thể. Ví dụ: nếu tôi muốn giữ giới hạn bộ nhớ là 6GB và xóa các khóa được sử dụng gần đây nhất khỏi DB để đảm bảo rằng việc sử dụng memis không vượt quá 6GB, thì chúng ta có thể đặt hai tham số này (trong redis.conf hoặc CONFIG SET chỉ huy):
maxmemory 6gb
maxmemory-policy allkeys-lru
Có rất nhiều giá trị khác mà bạn có thể đặt cho hai tham số này bạn có thể đọc về điều này từ đây: https://redis.io/topics/lru-cache