Linux
將 redis 配置為不在記憶體中儲存所有內容?
我喜歡 redis,因為它可以讓我對資料結構進行操作。我想看看如果我將更多數據放入 redis 中會發生什麼,然後再放入 ram 中。所以我寫了一個循環,重複插入 30k 字節並設置
maxmemory 100MB
. 我想它會保持在100mb。它一直在增長。過去 1gb 然後過去 2gb。突然它崩潰了,因為我執行的是 32 位版本。現在…我不明白 maxmemory 的意義是什麼?我正在使用 Windows 版本,所以它可能被忽略了。redis 是否必須將所有內容都保存在記憶體中?如果我有一個站點(在 linux 上),機器上有 10gb 數據庫和 512mb,redis 可以工作嗎?我不需要它非常快我只是更喜歡修改其中的數據然後 sql(雖然我希望它仍然比 mysql 更快)
maxmemory 的要點是設置 Redis 將使用的最大記憶體量。但是,您將其置於不可能的情況下,要求它儲存超出分配記憶體的資訊。如果你給 Redis 一些方法來釋放記憶體,它會的。但如果沒有可丟棄的對象,它就無能為力。
“請注意,
$$ maxmemory $$當使用 Redis 作為記憶體時,設置確實是一個好主意。如果您將其用作通用數據庫,則需要監控其記憶體消耗並在消耗過多資源之前採取措施。”