2012-06-20 80 views
3

我正在爲我們的應用程序使用Redis和Memcached的緩存策略。等效於Memcached中的Redis哈希?

我們生成相當長的JSON字符串的緩存數據,從我們的SQL數據庫計算得出。由於緩存的數據是一次性的,所以我想使用Memcached,這樣它就會驅逐我們不再需要的密鑰。

問題是可以從不同的參數訪問一個集合(比如用戶)。在Redis中,我使用哈希,所以我可以在該哈希中爲每個集合的表示使用密鑰(hget),並且仍然可以使用一個命令(del)使所有密鑰失效。但是,我無法找到一種方式將舊密鑰驅逐到像Memcached那樣的給定數據庫大小。

所以我的問題可以是:

  • 如何設置Redis的,因此保持了最大DB大小,並根據需要逐出鍵?或
  • 我如何可以模擬Redis的哈希Memcached中,所以我可以輕鬆過期一組密鑰?

回答

4

要配置的Redis因此它具有memcached的類似緩存行爲,則需要更新配置文件,如下所示:

  • 設定值maxmemory(以字節爲單位)
  • 設置maxmemory - 政策allkeys-lru

你應該得到你想要的行爲。

+1

謝謝!這確實是這樣做的。以下是@antirez對此的評論:http://antirez.com/post/redis-as-LRU-cache.html – micho