我使用REDIS來存儲數據(字符串)。 ex: 鑰匙「s1」商店價值「hello world」。 鍵「s2」存儲值「再見」。 我希望s1在5分鐘後自動過期(空閒內存),但s2永不過期。我使用C#,.net 4.0 >>如何編碼? 謝謝REDIS的耐用性?如何自動過期數據?
2
A
回答
2
有關EXPIRE的文檔允許您設置每個鍵的EXPIRE值,以秒爲單位。
EXPIRE s1 300
將在5分鐘內過期關鍵s1。
在這裏看到的文檔:REDIS EXPIRE
如果您正在尋找C#代碼,我認爲這將取決於你使用的訪問Redis的什麼庫。 還有一些其他的做題,可以幫助,但也討論了在那裏到期沒有工作的問題:Redis Expire does not work
1
默認的Redis不會過期鍵,它設置過期時間爲-1,「S2」時間unilimited除非你設置它。
正常情況下,Redis鍵創建時沒有關聯的生存時間。 關鍵只是永遠活着,除非用戶以明確的方式刪除它,例如使用DEL命令。
EXPIRE系列命令能夠將過期關聯到給定密鑰,其代價是密鑰使用的一些額外內存的成本 。如果密鑰的有效期爲 ,Redis將確保在指定金額 時間過去後移除該密鑰。
2
對於我的情況與Redis的Azure的,我一直在尋找,只是保證我沒有讓我的縮放服務無用的數據。我發現maxmemory LRU/FIFO似乎達到這個目的:
http://redis.io/topics/lru-cache
在Redis的Azure中,一個可以在Maxmemory策略設置爲任何的管理門戶允許LRU方案。
3
如果你打算使用Redis的只是作爲一個高速緩存,每一個鍵都會有一個到期集,您可以考慮使用以下配置,而不是(假設2兆字節最大內存限制爲例):
maxmemory 2mb
maxmemory-policy allkeys-lru
在這種配置中,應用程序不需要使用EXPIRE命令(或等效命令)設置密鑰的生存時間,因爲只要我們達到2兆內存限制,所有密鑰都將使用近似的LRU算法逐出。
基本上在這個配置中,Redis的行爲與memcached類似。我們有更多關於使用Redis作爲LRU緩存的文檔。
相關問題
- 1. redis如何過期密鑰?
- 2. 如何更改redis數據庫,redis客戶端來自redis池
- 3. 內存數據庫如何提供耐久性?
- 4. Redis過時數據
- 5. RabbitMQ耐久性
- 6. 使用Jmeter自動化耐力測試
- 7. Redis過期不起作用
- 8. 如何通過彈簧數據redis連接多個redis實例?
- 9. 在整個部署過程中,redis是否耐久?
- 10. 如何從PushSharp獲得耐久性
- 11. MDB和耐久性
- 12. 耐久性保證?
- 13. 碼頭集裝箱數據庫 - 只讀圖像vs耐用性
- 14. 如何組織數據Redis的多個資源用於自動完成搜索
- 15. 在ActiveMQ中自動刪除不活動的耐用消費者
- 16. redis如何存儲數據
- 17. 如何定期自動調用函數?
- 18. 在Redis中過期複雜的數據類型
- 19. 在數據庫過期後自動刪除用戶
- 20. Redis的多個數據庫性能
- 21. 的Redis和數據完整性
- 22. 如何使用Redis的跟蹤移動用戶歷史的短期和長期
- 23. Redis過期並增加
- 24. Spring Data Redis過期密鑰
- 25. 如何自動更新運行數據結果的'期間'列存儲過程
- 26. 如何在Asp.Net C#中過濾來自日期的數據?
- 27. 如何禁用自動(通過數據切換啓用)nav-tab?
- 28. 如何在redis中創建自己的數據庫?
- 29. Redis:通過頻道的實時數據
- 30. Redis,如何通過它的密鑰查詢散列數據
甚至更好 - 使用SET內置的EX指令,即:SET s1「hello world」EX 300 –