1. 程式人生 > >redis string型別設定過期時間後 再進行set操作,會清除過期時間

redis string型別設定過期時間後 再進行set操作,會清除過期時間

redis的set操作實際上是: 刪除之前的key,再建立一個新的key,所以之前key就會被刪除連帶賦予的過期時間,

這時我們建議使用setrange 命令進行覆蓋操作,避免過期時間被刪除.

redis 的線上測試網址 (http://try.redis.io/  )

首先設定一個簡單的string型別key:

set key 123;

為他設定過期時間(在這裡我使用的是expireat  unix時間戳以秒為單位)

expireat key 1547049599;

使用ttl 命令可以檢視key的過期時間

ttl key;

使用setrange 命令(

http://redisdoc.com/string/setrange.html)命令參考,這個命令有3個引數 ,分別表示(key值,覆蓋位置,覆蓋的值) 在這裡我 直接從第0位開始覆蓋 覆蓋的新值為125

setrange key 0 125;

這時再檢視過期時間是否還存在 ttl key ;檢視新的值 是否發生改變 get key;

 

ok