2013-04-01 94 views
0

我打算使用Redis的作爲高速緩存,每一個鍵都會有一個到期集,我用redis.conf以下CONFIGRATION:使用Redis的緩存,但採用什麼持久性

maxmemory 2gb 
maxmemory-policy allkeys-lru 

的問題是什麼如何將過期的密鑰持久保存到另一個可以將密鑰存儲在磁盤中的數據庫(如MongoDB)(或任何數據庫)。要求如下:

1.當我查詢一個「熱鍵」(最近使用過)時,如果redis有密鑰,我可以很快從redis得到結果,否則我可以從另一個數據庫獲得密鑰將密鑰存儲在磁盤中。每個鍵都有自己的生活時間。當密鑰在Redis中過期時,另一個數據庫應該存儲過期的密鑰。當Redis的作爲這樣一個高速緩存,如果應用程序還需要使用Redis的一家商店

」,強烈建議創建兩個Redis的情況下,一個作爲緩存,以這種方式配置,和一個作爲一個商店,根據您的持久性需求進行相應配置,並只保存與緩存數據無關的密鑰。「 引用http://redis.io/topics/config

我的問題是如何將過期的密鑰保存到另一個數據庫(存儲在磁盤中的密鑰)而不是redis。

回答

2

您必須啓用通知,密鑰空間事件 http://redis.io/topics/notifications

,並捕獲到期/驅逐事件。

然後使用「psubscribe」來監聽「del」事件並將這些密鑰發送到另一個數據庫。

相關問題