Expire

为key设置过期时间

Redis的Expire与Setex区别说明

Setex

为key设置value值,并且,设置过期时间

Redis的Expire与Setex区别说明

区别

Setex是一个原子操作

设置值,设置过期时间两个动作,会在同一时间完成

在Redis缓存中,非常实用

补充知识:redis之setnx、setex、setrange、mset

1.setnx

设置 key对应的值为 string类型的 value。 如果key 已经存在,返回 0,nx 是not exist 的意思。

例如我们添加一个name= HongWan_new 的键值对,可以这样做:

redis 127.0.0.1:6379> get name
"HongWan"
redis 127.0.0.1:6379> setnx name HongWan_new
(integer) 0
redis 127.0.0.1:6379> get name
"HongWan"
redis 127.0.0.1:6379>

由于原来 name 有一个对应的值,所以本次的修改不生效,且返回码是 0。

2.setex

设置key 对应的值为 string 类型的 value,并指定此键值对应的有效期。

例如我们添加一个haircolor= red 的键值对,并指定它的有效期是10 秒,可以这样做:

redis 127.0.0.1:6379>setex haircolor 10 red
OK
redis 127.0.0.1:6379> get haircolor
"red"
redis 127.0.0.1:6379> get haircolor
(nil)
redis 127.0.0.1:6379>

可见由于最后一次的调用是10 秒以后了,所以取不到 haicolor 这个键对应的值。

3.setrange

设置指定 key 的 value 值的子字符串。

例如我们希望将 HongWan 的 126 邮箱替换为 gmail 邮箱,那么我们可以这样做:

redis 127.0.0.1:6379> get name
"HongWan@126.com"
redis 127.0.0.1:6379> setrange name 8 gmail.com
(integer) 17
redis 127.0.0.1:6379> get name
"HongWan@gmail.com"
redis 127.0.0.1:6379>

其中的 8 是指从下标为 8(包含8)的字符开始替换

4.mset

一次设置多个key 的值,成功返回 ok 表示所有的值都设置了,失败返回 0 表示没有任何值被设置。

redis 127.0.0.1:6379>mset key1 HongWan1 key2 HongWan2
OK
redis 127.0.0.1:6379> get key1
"HongWan1"
redis 127.0.0.1:6379> get key2
"HongWan2"
redis 127.0.0.1:6379>

5.msetnx

一次设置多个key 的值,成功返回 ok 表示所有的值都设置了,失败返回 0 表示没有任何值被设置, 但是不会覆盖已经存在的 key。

redis 127.0.0.1:6379> get key1
"HongWan1"
redis 127.0.0.1:6379> get key2
"HongWan2"
redis 127.0.0.1:6379> msetnx key2 HongWan2_newkey3 HongWan3
(integer) 0
redis 127.0.0.1:6379> get key2
"HongWan2"
redis 127.0.0.1:6379> get key3
(nil)

可以看出如果这条命令返回 0,那么里面操作都会回滚,都不会被执行。

以上这篇Redis的Expire与Setex区别说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

标签:
Redis,Expire,Setex

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com

评论“Redis的Expire与Setex区别说明”

暂无“Redis的Expire与Setex区别说明”评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?