NX与XX

set命令恐怕是redis中使用最多的命令了。

它默认有两条规则:

  • 当key不存在时,设置新的key/value。
  • 当key存在时,覆盖原有的key/value。

例如:

127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"127.0.0.1:6379> set hello newvalue  # 新值会覆盖掉原来的值。
OK
127.0.0.1:6379> get hello
"newvalue"

但在执行set命令时,相信大家会注意到后面提示的两个参数NX/XX

文档中是这样介绍的:

  • NX – Only set the key if it does not already exist.
  • XX – Only set the key if it already exist.

NX命令: 仅当key不存在时,set才会生效。例如:

127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> set hello newval nx   # 由于hello存在,所以set命令不会生效,返回nil表示失败。
(nil)
127.0.0.1:6379> get hello   # 此时还是原来的值。
"world"127.0.0.1:6379> set newkey value nx    # newkey不存在,set命令成功。
OK
127.0.0.1:6379> get newkey
"value"

XX命令:仅当key存在时,set才会生效。 例如:

127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> set hello newval xx    # 由于hello存在,所以set命令会设置成功。
OK
127.0.0.1:6379> get hello              # 可以获取到新值
"newval"127.0.0.1:6379> set newkey val xx      # 由于newkey不存在,所以不会设置成功
(nil)
127.0.0.1:6379> get newkey
(nil)

欢迎加我qq2693438633进行技术交流~

Redis - NX与XX相关推荐

  1. 优雅删除Redis中以xx开头的key

    1.暴力删除 使用keys * 扫描所有的key,然后批量删除.key较多时,会阻塞redis,生产环境中需要慎重,适合并发小,keys数量少的场景. 关键命令: docker run --rm -- ...

  2. redis - set key value [expiration EX seconds|PX milliseconds] [NX|XX]

    **set key value [expiration EX seconds|PX milliseconds] [NX|XX]** EX seconds : 将键的过期时间设置为 seconds 秒. ...

  3. SET key value [EX seconds] [PX milliseconds] [NX|XX]

    Set key to hold the string value. If key already holds a value, it is overwritten, regardless of its ...

  4. redis set NX EX 命令

    Redis 命令参考 » SET SET key value [EX seconds] [PX milliseconds] [NX|XX] 将字符串值 value 关联到 key . 如果 key 已 ...

  5. python的redis数据库连接与使用

    Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...

  6. Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  7. redis命令_Redis 命令执行过程(下)

    点击上方"程序员历小冰",选择"置顶或者星标" 你的关注意义重大! 在上一篇文章中<Redis 命令执行过程(上)>中,我们首先了解 Redis 命 ...

  8. Python 连接 redis 模块

    redis 模块使用可以分类为: 连接方式 连接池 操作 String操作 Hash操作 List操作 Set操作 Sort Set操作 管道 发布订阅 (1)操作模式 redis提供两个类Redis ...

  9. Python操作Redis及连接方式

    前沿:随着互联网的高速发展,数据变得越来越重要,Python成为了人工智能的热门语言,而Nosql数据库已成为日常开发用品. 今天要写的是Python操作Redis Redis的安装我就不介绍了,你可 ...

  10. Redis Python 客户端

    目录 文章目录 目录 Python Redis 连接池 管道 String 操作 List 操作 Hash 操作 Set 操作 ZSet 操作 常规操作 Python Redis >>&g ...

最新文章

  1. 青源 LIVE 预告 | 华为诺亚韩凯:视觉 Transformer 综述
  2. MySQL数据库多种安装方法及企业级安装实践
  3. silverlight实现2D人物动画
  4. sap系统操作流程财务软件_金蝶财务软件的操作流程汇总
  5. 每天学习一点,坚持学习!!
  6. MaBatis(5)输入/输出映射
  7. linux下常用快捷键
  8. 小型微型计算机系统退回修改,小型微型计算机系统
  9. SAP License:SAP学习笔记
  10. Linux内核模块下载到板子,在Linux内核中增加新驱动模块
  11. ASP.Net 服务器应用程序不可用 解决方法
  12. 软件工程-软件需求规格说明书模板
  13. 如何从12306网站下载自己喜欢的手机铃声
  14. 青米母公司动力未来登陆新三板 小米生态链企业首个挂牌上市
  15. MIUI12系统简单卡刷开发版获取Root超级权限的步骤
  16. SourceInsight4.0的使用
  17. 人工智能时代,教育革命迫在眉睫
  18. java读取zip文件损坏_java – 如何检查生成的zip文件是否损坏?
  19. NET:Error Creating Control -Object Reference Not Set To An Instance Of Object
  20. 时控开关c语言程序,德力西KG316T时控开关调整和设定时间操作方法说明

热门文章

  1. 微信小程序-腾讯地图报错:鉴权失败,请传入正确的key
  2. ad10搜索快捷键_AD10快捷键解析
  3. MPU和MCU的区别
  4. 参考文献起止页码怎么写_参考文献规范写法
  5. STM32F401CCU6踩坑系列
  6. 超声光学成像突破衍射极限
  7. 超声成像突破衍射极限,有望检测肿瘤
  8. matlab排序excel数据库,matlab对excel数据进行排序求和
  9. java运行html代码,java代码运行html
  10. 推荐25个值得收藏的前端开源Awesome项目