Linux

將 redis 配置為不在記憶體中儲存所有內容?

  • September 3, 2012

我喜歡 redis,因為它可以讓我對資料結構進行操作。我想看看如果我將更多數據放入 redis 中會發生什麼,然後再放入 ram 中。所以我寫了一個循環,重複插入 30k 字節並設置maxmemory 100MB. 我想它會保持在100mb。它一直在增長。過去 1gb 然後過去 2gb。突然它崩潰了,因為我執行的是 32 位版本。

現在…我不明白 maxmemory 的意義是什麼?我正在使用 Windows 版本,所以它可能被忽略了。redis 是否必須將所有內容都保存在記憶體中?如果我有一個站點(在 linux 上),機器上有 10gb 數據庫和 512mb,redis 可以工作嗎?我不需要它非常快我只是更喜歡修改其中的數據然後 sql(雖然我希望它仍然比 mysql 更快)

maxmemory 的要點是設置 Redis 將使用的最大記憶體量。但是,您將其置於不可能的情況下,要求它儲存超出分配記憶體的資訊。如果你給 Redis 一些方法來釋放記憶體,它會的。但如果沒有可丟棄的對象,它就無能為力。

“請注意,

$$ maxmemory $$當使用 Redis 作為記憶體時,設置確實是一個好主意。如果您將其用作通用數據庫,則需要監控其記憶體消耗並在消耗過多資源之前採取措施。”

引用自:https://serverfault.com/questions/423784