【Redis】Redis常用命令一

1.keys:返回所有满足条件的key,比如:

KEYS pattern

时间复杂度:O(N),返回值:匹配pattern的所有key。

• h?llo 匹配 hello , hallo 和 hxllo
• h*llo 匹配 hllo 和 heeeello
• h[ae]llo 匹配 hello 和 hallo 但不匹配 hillo
• h[^e]llo 匹配 hallo , hbllo ,…但不匹配 hello
• h[a-b]llo 匹配 hallo 和 hbllo
在这里插入图片描述
注意:生产环境一般都会禁止使用keys *,因为生产环境上key可能会非常多,而redis是一个单线程的服务器,执行keys *可能时间非常长,这样就会使Redis阻塞无法给其他客户端提供服务!!

2.exists:判断某个key是否存在。

EXISTS key [key ...]

时间复杂度:O(1),返回值:key存在的个数。
在这里插入图片描述

3.del:删除指定的key。

DEL key [key ...]

时间复杂度:O(1),返回值:成功删除key的个数。
在这里插入图片描述

4.expire:为指定的key添加秒级的过期时间。

ttl:获取指定key的过期时间。

EXPIRE key seconds
TTL key

时间复杂度:O(1),返回值:1表示设置成功。0表示设置失败。

时间复杂度:O(1),返回值:剩余过期时间。-1表示没有关联过期时间,-2表示key不存在。
在这里插入图片描述

5.type:返回key对应的数据类型。

TYPE key

时间复杂度:O(1),返回值: none , string , list , set , zset , hash ,stream 。

6.set:将string类型的value设置到key中。如果key之前存在,则覆盖,无论原来的数据类型是什么,之前关于此key的ttl也全部失效。

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

如果设置成功,返回OK。如果由于set指定了NX或者XX但条件不满足,set不会执行,并返回(nil)。

时间复杂度:O(1)
• EX seconds⸺使用秒作为单位设置key的过期时间。
• PX milliseconds⸺使用毫秒作为单位设置key的过期时间。
• NX ⸺只在key不存在时才进行设置,即如果key之前已经存在,设置不执行。
• XX ⸺只在key存在时才进行设置,即如果key之前不存在,设置不执行。
在这里插入图片描述

7.get:获取key对应的value。如果key不存在,返回nil。如果value的数据类型不是string,会报错 。

GET key

时间复杂度:O(1),返回值:key对应的value,或者nil当key不存在。
在这里插入图片描述

8.mget:⼀次性获取多个key的值。如果对应的key不存在或者对应的数据类型不是string,返回nil。

MGET key [key ...]

时间复杂度:O(N)N是key数量,返回值:对应value的列表。
在这里插入图片描述

9.mset:⼀次性设置多个key的值。

MSET key value [key value ...]

时间复杂度:O(N)N是key数量,返回值:永远是OK。
在这里插入图片描述

多次get和单次mget区别
在这里插入图片描述

使⽤mget/mset由于可以有效地减少了网络时间,所以性能相较更⾼。假设网络耗时1毫秒,命令执行时间耗时0.1毫秒 。

1000次get耗时1000x1+1000x0.1=1100毫秒,1次mget1000个键耗时1x1+1000x0.1=101毫秒.

但是要注意,每次批量操作所发送的键的数量也不是⽆节制的,否则可能造成单⼀命令执⾏时间过⻓,导致Redis阻塞.

10.setnx:设置key-value,但只允许在key不存在的情况下设置。

SETNX key value

时间复杂度:O(1),返回值:1表示设置成功。0表示没有设置。
在这里插入图片描述

11、incr:将key对应的string表⽰的数字加1。如果key不存在,则视为key对应的value是0。如果key对应的string不是⼀个整型或者范围超过了64位有符号整型,则报错。

INCR key

时间复杂度:O(1),返回值:integer类型的加完后的数值

12.incrby:将key对应的string表⽰的数字加上对应的值。如果key不存在,则视为key对应的value是0。如果key对应的string不是⼀个整型或者范围超过了64位有符号整型,则报错。

INCRBY key decrement

时间复杂度:O(1),返回值:integer类型的加完后的数值

13.decr:将key对应的string表⽰的数字减⼀。如果key不存在,则视为key对应的value是0。如果key对应的string不是⼀个整型或者范围超过了64位有符号整型,则报错。

DECR key

时间复杂度:O(1),返回值:integer类型的减完后的数值。

14.decrby:将key对应的string表⽰的数字减去对应的值。如果key不存在,则视为key对应的value是0。如果key对应的string不是⼀个整型或者范围超过了64位有符号整型,则报错。

DECRBY key decrement

时间复杂度:O(1),返回值:integer类型的减完后的数值。

15。incrbyfloat:将key对应的string表⽰的浮点数加上对应的值。如果对应的值是负数,则视为减去对应的值。如果key不存在,则视为key对应的value是0。如果key对应的不是string,或者不是⼀个浮点数,则报错。允许采⽤科学计数法表⽰浮点数。

INCRBYFLOAT key increment

时间复杂度:O(1),返回值:加/减完后的数值 。
在这里插入图片描述

16.append:如果key已经存在并且是⼀个string,命令会将value追加到原有string的后边。如果key不存在,则效果等同于set命令。

APPEND KEY VALUE

时间复杂度:O(1).追加的字符串⼀般⻓度较短,可以视为O(1),返回值:追加完成之后string的⻓度。
在这里插入图片描述

17.getrange:返回key对应的string的⼦串,由start和end确定(左闭右闭)。可以使⽤负数表⽰倒数。-1代表倒数第⼀个字符,-2代表倒数第⼆个,其他的与此类似。超过范围的偏移量会根据string的⻓度调整成正确的值。

GETRANGE key start end

时间复杂度:O(N).N为[start,end]区间的⻓度.由于string通常⽐较短,可以视为是O(1)
返回值:string类型的⼦串
在这里插入图片描述

18.setrange:覆盖字符串的⼀部分,从指定的offset开始

SETRANGE key offset value

时间复杂度:O(N),N为value的⻓度.由于⼀般给的value⽐较短,通常视为O(1).返回值:替换后的string的⻓度
在这里插入图片描述

19.strlen:获取key对应的string的⻓度。当key存放的类似不是string时,报错。

STRLEN KEY

时间复杂度:O(1),返回值:string的⻓度。或者当key不存在时,返回0。
在这里插入图片描述

总结:

命令解释时间复杂度
set key value [keyvalue…]设置key的值是valueO(n),n是键个数
get key获取key的值O(1)
del key [key…]删除指定的keyO(n),n是键个数
mset key value [keyvalue …]批量设置指定的key和valueO(n),n是键个数
mget key [key…]批量获取key的值O(n),n是键个数
incr key指定的key的值 +1O(1)
decr key指定的key的值 -1O(1)
incrby key n指定的key的值 +nO(1)
decrby key n指定的key的值 -nO(1)
incrbyfloat key n指定的key的值+nO(1)
append key value指定的key的值追加valueO(1)
strlen key获取指定key的值的⻓度O(1)
setrange key offset value覆盖指定key的从offset开始的部分值O(n),n是字符 串⻓度,通常视 为O(1)
getrange key start end获取指定key的从start到end的部分值O(n),n是字符 串⻓度,通常视 为O(1)

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

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

相关文章

回收站清空了怎么恢复回来?这四种回收站数据恢复方法要知道

在使用电脑的过程中,我们难免会遇到误删文件的情况。一旦不小心清空了回收站,那些被删除的文件似乎就永远消失了。但其实,在一定条件下,我们还是有机会恢复这些文件的。本文将介绍四种不同的方法,帮助你在回收站清空后…

刷题日记——礼炮车(厦门大学机试)

例题——礼炮车 方法一:按照开炮时间对时间间隔取余 第一炮设置都是第0秒打响,那么: 间隔为5的炮车打响第n炮,应该在(n-1)*5秒间隔为6的炮车打响第n炮,应该在(n-1)*6秒…

STM32 晶振(用示波器测RCC频率是否一致)

如果测出的频率不准确,可以修改一下看看是否有改善:

合合信息旗下启信宝3·15黄金市场洞察:新增企业量5年连降

近期,国际金价持续走高,国内黄金价格也随之“水涨船高”。然而,处于“高水位”的价位不仅未能浇灭大众对黄金饰品的热情,反而催化了“越涨越买”的消费趋势。与消费量的增长伴生的是激增的产品投诉量,黄金饰品行业的发…

Excel生成 chart 混合图表

在开发中有这样一个需求,邮件预警的时候,要求邮件主体内容是一个Chart 图表(生成后的img),邮件需要有附件,且附件是Excel列表加图表,图表类型是混合图。 回顾:在之前一篇讲到如何使用…

web项目的搭建

使用Webstorm并创建Next.js文件 1、配置nodejs环境、安装webstorm【配置node.js可以使用nvm去管理nodejs的版本】 2、需要破解webstorm,可能会导致原本的idea失效,注册码过期 3、taobao的npm过期,导致npm is sass执行不成功,需…

【嵌入式——QT】QPainter基本绘图

【嵌入式——QT】QPainter基本绘图 QPainter与QPaintDevicepaintEvent事件和绘图区QPainter主要属性QPen主要功能QBrush主要功能QPainter绘制基本图形方法图示代码示例 QPainter与QPaintDevice QPainter是用来进行绘图操作的类,QPaintDevice是一个可以使用QPainter…

EI级 | Matlab实现PCA-GCN主成分降维结合图卷积神经网络的数据多特征分类预测

EI级 | Matlab实现PCA-GCN主成分降维结合图卷积神经网络的数据多特征分类预测 目录 EI级 | Matlab实现PCA-GCN主成分降维结合图卷积神经网络的数据多特征分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现PCA-GCN主成分降维结合图卷积神经网络的数据多…

算法执行顺序(科拉多·伯姆,朱塞佩·贾可皮尼)

一.三大算法(逻辑跳转) 二.break 与 continue ---杨同学---

线程工具类与原子类

参考文档: CountDownLatch、CyclicBarrier、Semaphore的用法和区别juc15_基本AtomicInteger、数组、引用AtomicStampedReference、对象的属性修改原子类 AtomicIntegerFieldUp 、原子操作增强类LongAdder 辅助工具类 CountDownLatch(闭锁) 做减法 允许一个或多个…

西瓜书机器学习AUC与ℓ-rank(loss)的联系理解以及证明(通俗易懂)

前言 在学习到这部分时,对 ℓ-rank 以及AUC的关系难以理解透彻,在网上看到其他博主也并未弄明白,大家大多写自己的理解,我希望您在看完这篇文章时能够深刻理解这二者的关系,如果我的理解有误,希望您在评论…

Maven的基本使用

Maven的基本使用 一、为什么要使用Maven1.1 方便添加第三方Jar包1.2 方便获取第三方Jar包(中央仓库)1.3 解决了依赖问题1.4 解决了依赖冲突1.4 项目管理更清晰1.5 总结 二、Maven的下载三、配置Maven本地仓库和中央仓库3.1 Settings文件3.2 配置本地仓库3.3 配置中央仓库(镜像地…