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不存在

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

花了三天的时间做了一个多功能 AI 助手

嗨!我是团子,大家新年快乐呀~ 前几天看到一些好朋友在朋友圈晒自己的年度总结,立新年 Flag,看到大家一年满满的收获,再看看自己,不由得想再看看人家,然后再看看自己,然后再看看人家…

MAVROS的进一步理解

一、Mavros简介 顾名思义, mavros就是mavlinkros。mavros是PX4官方提供的一个运行于ros下收发mavlink消息的工具,利用mavros可以发送mavlink消息给飞控(可以控制飞机),并且可以从飞控中接受数据(例如:飞控的位置速度 IMU数据等等…

阿里云服务器ECS介绍_高性能云服务器_为了无法计算的价值

阿里云高性能云服务器60%单实例最大性能提升,35Gbps内网带宽,网络增强&通用型云服务器、本地SSD型云服务器、大数据型云服务器、GPU异构型云服务器,阿里云百科aliyunbaike.com分享阿里云高性能云服务器: 阿里云高性能云服务器…

大模型实战营Day4 作业

基础作业: 构建数据集,使用 XTuner 微调 InternLM-Chat-7B 模型, 让模型学习到它是你的智能小助手,效果如下图所示,本作业训练出来的模型的输出需要将不要葱姜蒜大佬替换成自己名字或昵称! 微调前(回答比较…

LMDeploy 的量化和部署

LMDeploy 的量化和部署 文档:https://github.com/InternLM/tutorial/blob/vansin-patch-4/lmdeploy/lmdeploy.md 视频:https://www.bilibili.com/video/BV1iW4y1A77P 一、模型量化 大模型参数量很大,运行起来非常消耗显存和内存,…

[NSSCTF Round#16 Basic] CPR

打着玩玩,比赛很简单。 Crypto pr 一个RSA题,n1p*q,n2q*r给了两个c和p,r而且flag经过pad用单因子无法解出。分别用p,r解完再取crt from Crypto.Util.number import * import randomflagplaintext NSSCTF{****************} charset abcdefghijklmn…

MySQL基础学习: 使用EXPLAIN查看执行计划详解分析

一、EXPLAIN语句的作用 在客户端执行MySQL的操作语句,会依次经过MySQL客户端连接管理、语法解析与优化(查询缓存、语法解析、查询优化)、存储引擎层。其中查询优化器在基于成本和规则对查询语句进行优化,并且在优化后会生成一个执…

nacos配置中心只能获取部分配置的问题

检查配置中心,在配置中心里是可以看到监听的服务地址的,但是却获取不到配置 nacos配置中心主要是在这个NacosConfigService的这个类下面。该接口下面主要有一些获取配置,发布配置,增加监听器,删除配置,删…

一个简易的PHP论坛系统

一个简易的PHP论坛系统 php课程设计,毕业设计 预览 技术 bootstrap 4.x jquery css php mysql 5.7 目录结构 登录 管理员 admin/123456 测试用户 user1/123456 更多文章和源码获取查看

Windows平台RTMP推送|轻量级RTSP服务录像模块如何支持中文路径?

技术背景 我们在做Windows平台RTMP推送、轻量级RTSP服务录像模块的时候,部分开发者抱怨路径无法设置中文,只能设置为英文。 以C#的接口为例,早期的设计如下: /** 设置本地录像目录, 必须是英文目录,否则会失败*/[DllI…

【Java SE语法篇】8.面向对象三大特征——封装、继承和多态

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 文章目录 1. 封装1.1 封装的概念1.2 为什么封装1.3 封装的实现…

Leetcode with Golang 滑动窗口 Part1

滑动窗口的定义: 滑动窗口这一个技巧主要运用于处理数组问题上,一般用于“子串”问题。精髓是,维护一个里面装着元素的“窗口”,在将新元素装进“窗口”的同时,根据题意,把不符合题意的元素踢出“窗口”。…

漏洞复现-nginxWebUI runCmd前台远程命令执行漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

1222. 密码脱落(dp划分)

题目&#xff1a; 1222. 密码脱落 - AcWing题库 思路&#xff1a; 代码&#xff1a; #include<cstdio> #include<cstring> using namespace std; const int N1010; int f[N][N];//表示以L和R为两端点的字符串的“最长”回文序列长度 char s[N];//存储输入的字符串…

buuctf-Misc 题目解答分解115-117

115.派大星的烦恼 解压下载文件时一个 bmp 文件&#xff0c;用notepad 打开有没有发现什么 &#xff0c;提示位图什么的 用Stegsolve.jar 打开 发现很多. 和- 第一时间想到了 电报码 但提示不是电报码&#xff0c;除了这个那就是很像二进制了 0,1 什么的&#xff0c;但这个感觉…

Sqoop与其他数据采集工具的比较分析

比较Sqoop与其他数据采集工具是一个重要的话题&#xff0c;因为不同的工具在不同的情况下可能更适合。在本博客文章中&#xff0c;将深入比较Sqoop与其他数据采集工具&#xff0c;提供详细的示例代码和全面的内容&#xff0c;以帮助大家更好地了解它们之间的差异和优劣势。 Sq…

六、新建窗体时,几种窗体的区别

新建窗体时&#xff0c;会有几种类型的选项&#xff0c;很多同学不明白其中的意思&#xff0c;我们在本章节中详细介绍一下几种窗体的区别。 窗体的类型分以下几种 Dialog with Buttons Bottom 带按钮的对话框&#xff0c;按钮在底部 Dialog with Buttons Right 带按钮的对话框…

【计算机组成原理】高速缓冲存储器 Cache 的写策略(Writing Policy)

写策略 Writing Policy 缓存的写策略指的是确定何时将数据写入缓存或主存的策略。 写命中 Write Hit 全写法 Write Through 在全写法策略中&#xff0c;每次发生写操作时都会将数据同时写入缓存和主存。这样可以保证数据的一致性&#xff0c;但会增加主存的写入操作&#xf…

深入 Move 生态,探秘铭文热潮背后的思考

Move 语言是 Meta&#xff08;Facebook&#xff09;在 2018 年开发的新一代智能合约编程语言。回顾过去的一年&#xff0c;Aptos 与 Sui 主网上线&#xff0c;为整个 Web3 开启了下一个十亿用户服务的新征程。Rooch、Initia、MoveMent 等多条使用 Move 语言的区块链网络涌现&am…

1 pytest入门

pytest入门 示例成功失败 1.1 资源获取官方文档安装 1.2 运行 Pytest测试搜索命名规则 1.3 运行单个测试用例1.4 使用命令行选项-h&#xff08;--help&#xff09;--collect-only-k-m-x--maxfailnum-s 与 --capturemethod-s 等价于 --captureno--capturesys--capturefd -l&…