• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Redis的Expire与Setex区别说明

    Expire

    为key设置过期时间

    Setex

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

    区别

    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批量删除key的步骤
    • 查看Redis内存信息的命令
    • redis分布式锁及会出现的问题解决
    • 详解Redis的慢查询日志
    • 如何高效使用Redis作为LRU缓存
    上一篇:redis批量删除key的步骤
    下一篇:springboot +redis 实现点赞、浏览、收藏、评论等数量的增减操作
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Redis的Expire与Setex区别说明 Redis,的,Expire,与,Setex,区别,