Redis命令 - Strings命令组常用命令

1、Set命令

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

1.1 参数说明:

EX seconds: 
	设置key的过期时间,单位时秒
	
PX milliseconds: 
	设置key的过期时间,单位时毫秒
	
NX: 
	只有key不存在的时候,才会设置key的值
	
XX: 
	只有key存在的时候,才会设置key的值

1.2 set key value nx 可以完全取代setnx命令

setnx key value
如果key不存在,才将key设置值为value。这种情况下等同SET命令。 当key存在时,什么也不做。

1.3 set key value [EX seconds] 可以完全取代setex命令

setex key seconds value
设置key对应字符串value,并且设置key在给定的seconds时间之后超时过期

setex key seconds value等同于下面2条命令,setex是原子的。相比连续执行2条命令,setex更快
SET key value
EXPIRE key seconds

1.4 set key value [PX milliseconds] 可以完全取代 PSETEX命令

PSETEX key milliseconds value
PSETEX和SETEX一样,唯一的区别是到期时间以毫秒为单位,而不是秒

2、Set命令示例

2.1 设置一个key value

set key value
在这里插入图片描述

2.2 SET命令设置一个key value以及过期时间

set key value ex seconds

设置一个key是tester,value是lisi,20秒过期。有效期内查询值返回lisi,过期后查询返回null
在这里插入图片描述

2.3 SetEx命令设置一个key value以及过期时间

setex key seconds value

设置一个key是tester,value是wangwu,30秒过期。有效期内查询值返回lisi,过期后查询返回null

在这里插入图片描述
SETEX命令设置的有效时间,查询剩余有效时间,使用命令TTL

TTL key

设置一个key value,有效时间是60秒,用TTL查询剩余有效时间,还剩56秒
在这里插入图片描述

2.4 PSETEX命令设置一个key value以及过期时间

跟SETEX唯一区别是到期时间单位是以毫秒为单位。查询剩余有效时间使用PTTL。
可以看到,当没有过期时,返回剩余有效时间,当过期时,返回-2,代表已经过期。如果是永久有效,将返回-1。
在这里插入图片描述
在这里插入图片描述

2.5 SET命令:key不存在才设置value的值

set key value nx

先new了一个student的key,当使用set student zhangsan nx时,就会返回null,因为该key已经存在,并且当key已经存在的时候就什么都不做,值并没有变,还是zhangsan
在这里插入图片描述

那么如果是不存在的key,就会设置值成功
在这里插入图片描述

2.6 SETNX命令:key不存在才设置value的值

SETNX命令效果同set key value nx

SETNX命令返回值:

  • 1:代表key成功被设置
  • 0:代表此key已存在,什么都不会做。查询此key的值,还是原本的值zhangsan
    在这里插入图片描述

2.7 SET命令:key存在时才设置value的值

set key value xx
返回值:key存在被设置,返回OK; key不存在,返回null

key student已存在,设置值为xiu,设置成功返回OK
key nn不存在,设置值为mei,设置失败,返回null

在这里插入图片描述

3、getset命令:赋新值取旧值

getset key value

先new一个key是no,value是123,再使用getset取旧值的同时赋新值456,操作完之后,使用get查询no的值,是456。

注:当getset命令查不到key时,会返回null

在这里插入图片描述

4、incr:自增1

incr key
返回值是增加之后的value

new一个key叫no,值为0,然后执行incr no命令

注:上面的例子已创建了key no,可以使用del命令删除key,也可以直接set no的值为0,方便继续下面的示例。

可见,每执行一次incr命令,value就会自增1
在这里插入图片描述

5、incrby:指定增加的值

incrby key increment
返回值:增加之后的value值

no的值是0,执行incrby命令,指定要增加多少,效果如下
在这里插入图片描述

6、decr:自减1

decr key
返回值是减小之后的value

new一个key叫no,值为10,然后执行decr no命令

注:上面的例子已创建了key no,可以使用del命令删除key,也可以直接set no的值为10,方便继续下面的示例。

可见,每执行一次decr命令,value就会自减1
在这里插入图片描述
如果key有一个错误类型的value或者是一个不能表示成数字的字符串,就返回错误。这个操作最大支持在64位有符号的整型数字。

在这里插入图片描述

7、decrby:指定减少的值

decrby key decrement
返回值:减少之后的value值

no的值是100,执行decrby命令,指定要减少多少,效果如下
在这里插入图片描述

8、MSET命令:设置多个key value

MSET key value [key value]

设置多组key value
在这里插入图片描述

9、MSETNX命令:当key不存在时,设置key的值

效果同setnx,只不过msetnx是一次命令操作多组keyvalue而已
返回值:

  • 1:所有的key被设置成功才会返回1
  • 0:只要存在一个key已存在没被设置成功,就会返回0

10、Append命令:

如果 key 已经存在,并且值为字符串,那么这个命令会把 value 追加到原来值(value)的结尾。 如果 key 不存在,那么它将首先创建一个空字符串的key,再执行追加操作,这种情况 APPEND 将类似于 SET 操作。

append key value
返回值:返回append后字符串值(value)的长度。

10.1 key已经存在且value是字符串类型

在这里插入图片描述

10.2 key不存在

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/317294.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GitHub注册新账号的操作流程(详细)

目录 第一步 进入官网,点击右上角的"Sign up" 第二步 输入email地址 第三步 设置密码 第四步 输入昵称 第五步 根据个人喜好决定要不要接收GitHub的邮件推送。然后回答他们的验证问题 第六步 输入验证码 我在注册github账号时遇到过一些阻碍&#x…

Web前端 ---- 【Vue3】ref和reactive实现响应式的区别和联系

目录 前言 setup ref 基本数据类型 对象形式 reactive ref和reactive的区别与联系 前言 本文介绍函数ref和函数reactive实现响应式 setup 在介绍ref和reactive之前,先介绍setup,vue3新引入的配置项。在该配置项中,在vue2中的data、methods、comput…

VS游戏打包教程

我用得天天酷跑小游戏做的例子 1:安装打包插件 2:在解决方案里新建一个项目 3:新建一个setup项目 4:界面如下(通过右键folder,可以创建folder目录和输出) 5:素材文件 6:素材放完了就项目输出 7:创建快捷方式 右键这个主输出选择第一个create shortcut 8:将这个快捷方式,拖到,…

MAVROS与机载电脑Jetson nano通信

简介:MAVROS和Jetson nano通信,设置飞控参数和MAVROS文件,实现飞控和机载电脑的通信。MAVROS相当于PX4飞控中的MAVLINK模块。MAVROS将话题转为MAVLINK格式消息发送给飞控,飞控中的MAVLINK模块将MAVLINK格式消息转化为uORB消息给PX…

MYSQL分表分库 详解

目录 一、垂直拆分于水平拆分的区别? 垂直拆分 水平拆分 二、分表分库有哪些策略? Hash分片策略 枚举分片策略 日期分片策略 范围分片策略(用的较多) 三、分表分库之后,如何查询的呢? 四、分表分…

009集:open( )、write( )、close( )函数读写文件实例—python基础入门实例

一般来说,计算机文件可以分为两类:文本文件和二进制文件。大多数Windows文本文件使用ANSI、OEM或者Unicode编码。常见的文本文件有:大多数Windows文本文件使用ANSI、OEM或者Unicode编码。常用的文本文件格式有ASCII、MIME、*.txt等&#xff0…

【Linux 内核源码分析】进程调度 -CFS 调度器

Linux调度器 Linux内核调度器是负责决定哪个进程在何时执行的组件。它管理着CPU资源的分配和任务的调度,以确保系统资源的合理利用和任务的高效执行。Linux内核中常见的调度器有多种,包括经典的O(1)调度器、CFS(Completely Fair Scheduler&a…

大模型实战笔记04——XTuner 大模型单卡低成本微调实战

大模型实战笔记04——XTuner 大模型单卡低成本微调实战 1、Finetune简介 2、XTuner 3、8GB显存玩转LLM 4、动手实战环节 注: 笔记内容均为截图 课程视频地址:https://www.bilibili.com/video/BV1yK4y1B75J/?spm_id_from333.788&vd_source2882acf…

Flink(十二)【容错机制】

前言 最近已经放假了,但是一直在忙一个很重要的自己的一个项目,用 JavaFX 和一个大数据组件联合开发一个功能,也算不枉我学了一次 JavaFX,收获很大,JavaFX 它作为一个 GUI 开发语言,本质还是 Java&#xff…

嵌套的CMake

hehedalinux:~/Linux/multi-v1$ tree . ├── calc │ ├── add.cpp │ ├── CMakeLists.txt │ ├── div.cpp │ ├── mult.cpp │ └── sub.cpp ├── CMakeLists.txt ├── include │ ├── calc.h │ └── sort.h ├── sort │ ├── …

Spring之AOP源码(一)

文章目录 一、动态代理1. 概念2. Cglib动态代理的使用3. JDK动态代理的使用 二、SpringAOP1. 简介2. Spring AOP使用 一、动态代理 1. 概念 动态代理(Dynamic Proxy)是一种在运行时动态生成代理对象的技术。它是一种设计模式,用于在不修改原…

Web实战丨基于django+html+css+js的电子商务网站

文章目录 写在前面实验目标需求分析实验内容安装依赖库1.登陆界面2.注册界面3.电子商城界面4.其他界面 运行结果写在后面 写在前面 本期内容:基于DjangoHTMLCSSJS的电子商务网站 实验环境: vscode或pycharmpython(3.11.4)django 代码下载地址&#x…

Web自动化测试,一定得掌握的 8 个核心知识点

使用 cypress 进行端对端测试,和其他的一些框架有一个显著不同的地方,它使用 javascript 作为编程语言。传统主流的 selenium 框架是支持多语言的,大多数 QA 会的python 和 java 语言都可以编写 selenium 代码,遇到需要编写 js 代…

距离美赛还有20天,不要忘了阅读往年获奖论文(附04-23年美赛获奖论文)

之前发了很多数模相关的知识,受到了一些人的关注,也有很多人私下问我,距离美赛还有20几天了,还来不来得及。 对此我想说, 来不来得及重要吗? 你名都报了,钱也交了,还是笔不小的钱…

猫狗大战(猫狗识别)

1.问题简介 1.1问题描述 在这个问题中,你将面临一个经典的机器学习分类挑战——猫狗大战。你的任务是建立一个分类模型,能够准确地区分图像中是猫还是狗。 1.2预期解决方案 你的目标是通过训练一个机器学习模型,使其在给定一张图像时能够准…

【模块系列】STM32BMP280

前言 最进想练习下I2C的应用,手上好有BMP280也没用过,就看着机翻手册和原版手册,开始嘎嘎写库函数了。库的命名应该还1是比较规范了吧,就是手册对于最终值的计算方式很迷糊,所以现在也不能保证有可靠性啊,大…

关于运维·关于数据库面试题

目录 一、数据库类型 二、数据库引擎 三、mysql数据库类型 四、mysql的约束添加 五、主从复制原理 六、主从方式有几种 七、mysql主从数据不一致的原因 八、mysql的优化 九、什么是事务的特征 十、数据库读写分离的好处 十一、怎样优化sql语句 十二、mysql的同步方…

基于MAP算法的Turbo译码 -- 公式推导

到此为止,讲完了turbo译码器的子译码器基于MAP算法的译码过程。但在实际使用中,很少直接使用MAP算法进行译码。而是使用改进的LOG-MAP和MAX-LOG-MAP算法进行译码,因此译码的整体流程,包括外信息的计算以及先验信息的获取等。都在后…

openai自定义API操作 API (openai.custom)

OpenAI 提供了一个自定义 API,允许开发者通过编程方式与 OpenAI 的 AI 模型进行交互。使用这个 API,你可以执行各种任务,例如文本生成、推理和翻译等。 以下是使用 OpenAI 自定义 API 的基本步骤: 创建 API 密钥:首先…

谷粒商城-商品服务-品牌管理-阿里云云存储+JSR303数字校验+统一异常处理

阿里云云存储OSS 分布式系统上传文件 分布式系统上传文件 单体应用上传:上传文件到服务器,想获取文件时再向服务器发请求获取文件。 分布式系统上传: 因为有多台服务器,为防止负载均衡导致获取文件时没找到对应的服务器&#xf…