Configuration

在沒有 TTL 的 redis 中長期失去持久性

  • July 5, 2017

我們的鑰匙在一段時間內失去了,我們無法找到問題所在。

我們同時使用 AOF 和 RDB,配置如下:

關係數據庫:

save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb

AOF:

appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes

如您所見,沒有花哨的…都是redis預設值。

我試圖創建密鑰並重新啟動伺服器。在這種情況下,鑰匙還在。我無法確定鑰匙何時失去或為什麼?日誌文件沒有幫助,因為我不知道在日誌中查詢什麼或何時查詢。

我所知道的是我的鑰匙每隔大約一個月就會失去一次。

如何在redis中調試這種問題?

前言:Redis 中的鍵不會被刪除,除非明確請求或伺服器配置了驅逐策略(並且 RAM 受到壓力)。

遺憾的是,失去密鑰的最常見原因是安全性,或者說缺乏安全性。腳本兒童、leet haxors 和普通壞人利用不受保護的伺服器並造成各種破壞。您需要做的第一件事是確保伺服器受到適當的保護(即配置了密碼並且不向外界公開)。有關更多詳細資訊,請參閱https://redis.io/topics/security

在排除了攻擊和驅逐策略配置之後,唯一剩下的解釋就是一段流氓程式碼。從伺服器端,您可以嘗試使用MONITOR命令或通過配置鍵空間事件並訂閱相關消息來跟踪此行為。

引用自:https://dba.stackexchange.com/questions/177873