Redis中有個設置時間過期的功能,即通過setex或者expire實現,目前redis沒有提供hsetex()這樣的方法,redis中過期時間只針對頂級key類型,對於hash類型是不支持的,這個時候,我們可以采用,所以如果想對hash進行expires設置,可以采用下面的方法:
redis 127.0.0.1:6379> hset expire:me name tom
(integer) 0
redis 127.0.0.1:6379> hget expire:me name
"tom"
redis 127.0.0.1:6379> expire expire:me 20
(integer) 1
redis 127.0.0.1:6379> ttl expire:me
(integer) 8
...
...
...
redis 127.0.0.1:6379> ttl expire:me
(integer) -1
redis 127.0.0.1:6379> hget expire:me name
(nil)
即對存儲在redis數據庫中的值可以設置一個過期時間。作為一個緩存數據庫,這是非常實用的。如我們一般項目中的token或者一些登錄信息,尤其是短信驗證碼都是有時間限制的,按照傳統的數據庫處理方式,一般都是自己判斷過期,這樣無疑會嚴重影響項目性能。