如何判斷 redis中的key 是過期的,還是根本就不存在的。
兩種情況:1,一個key過期了 。2 ,這個key 根本就不存在。
在redis中,,如何區分。 試過 exsits key,,過期和不存在都回傳 0,試過ttl key,,過期和不存在都回傳 -2,,
根本不能區分,,不知道是不是這個面試官是個奇葩,還是真能區分。
uj5u.com熱心網友回復:
來人啊,,大佬們uj5u.com熱心網友回復:
這...存一份到資料庫啊uj5u.com熱心網友回復:
判斷是過期還是根本不存在,那就需要獲取到redis的操作日志,來進行比對。redis monitor 命令可以實時查看redis 的操作日志。但是這個命令是作為除錯的。也就是用作運維來使用的。
如果作為記錄來看的話,是需要持久化,然后來對比的。單獨通過一個命令什么的查看key是過期,還是不存在,這是不可實作的。
所以我感覺這是作為一個應用問題來考你的。可以這么做:key 過期的時候觸發 keyExpireListen/過期事件監聽,然后把這個key 以set 或Hash的格式再放回redis。 判斷是不存在還是過期。那就操作的時候先去去set或hash 中檢查該key是否存在。就可以了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/226652.html
標籤:Java EE
上一篇:批量匯入
