一般主要包括4種處理過期方,其中expire都是以秒為單位,pexpire都是以毫秒為單位的。
1 EXPIRE key seconds //將key的生存時間設置為ttl秒 2 PEXPIRE key milliseconds //將key的生成時間設置為ttl毫秒 3 EXPIREAT key timestamp //將key的過期時間設置為timestamp所代表的的秒數的時間戳 4 PEXPIREAT key milliseconds-timestamp //將key的過期時間設置為timestamp所代表的的毫秒數的時間戳
備注:timestamp為unix時間戳(例如:timestamp=1499788800 表示將在2017.07.12過期)
1、2兩種方式是設置一個過期的時間段,就是咱們處理驗證碼最常用的策略,設置三分鍾或五分鍾后失效,把分鍾數轉換成秒或毫秒存儲到Redis中。
3、4兩種方式是指定一個過期的時間 ,比如優惠券的過期時間是某年某月某日,只是單位不一樣。
下面我們就以EXPIREAT為例子簡單講解下用法。
返回值
一個整數值1或0,如下:
- 如果成功地為該鍵設置了超時時間,返回 1
- 如果鍵不存在或無法設置超時時間,返回 0
語法
以下是以Redis的EXPIREAT命令的基本語法。
1 redis 127.0.0.1:6379> Expireat KEY_NAME TIME_IN_UNIX_TIMESTAMP
示例
首先,在Redis中創建一個鍵:akey
,並在akey
中設置一些值。
1 redis 127.0.0.1:6379> SET akey redis 2 OK
現在,為設置創建的鍵設置超時時間為60 秒。
1 127.0.0.1:6379> SET akey redis 2 OK 3 127.0.0.1:6379> EXPIREAT akey 1393840000 4 (integer) 1 5 127.0.0.1:6379> EXISTS akey 6 (integer) 0 7 127.0.0.1:6379> SET akey redis 8 OK 9 127.0.0.1:6379> EXPIREAT akey 1493840000 10 (integer) 1 11 127.0.0.1:6379> EXISTS akey 12 (integer) 1
其他三個用法類似,這里不逐一闡述
2、字符串獨有方式
對字符串特殊處理的方式為SETEX命令,SETEX命令為指定的 key 設置值及其過期時間。如果 key 已經存在, SETEX 命令將會替換舊的值。
返回值
設置成功時返回 OK 。
語法
Redis Setex 命令基本語法如下:
redis 127.0.0.1:6379> SETEX KEY_NAME TIMEOUT VALUE
示例
1 redis 127.0.0.1:6379> SETEX mykey 60 redis 2 OK 3 redis 127.0.0.1:6379> TTL mykey 4 60 5 redis 127.0.0.1:6379> GET mykey 6 "redis