redis設置過期時間


一般主要包括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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM