redis 失效时间单位是秒还是毫秒_redis设置过期时间

Redis 中的过期时间主要通过 EXPIRE 和 PEXPIRE 命令设置,前者以秒为单位,后者以毫秒为单位。EXPIREAT 和 PEXPIREAT 命令则允许指定时间戳来设定过期时间。SETEX 命令用于设置字符串类型的键值对并直接包含过期时间,单位也是秒。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值