java学习 - Redis五大数据类型

redis通用命令

命令说明时间复杂度
type key判断key的数据类型O(1)
keys [pattern]获取数据库中所有符合pattern的keyO(n)
dbsize获取数据库的key的数量O(1)
exists key判断是否存在key;存在返回1,不存在返回0O(1)
del key [key…]删除key;返回删除个数O(1)
expire key seconds设置key在seconds秒后过期O(1)
ttl key查看key的剩余过期时间;-1 表示永远不过期,-2 表示key已经不存在了O(1)
persist key去掉key的过期时间O(1)

string类型

  • 结构
    • key -> value
    • age -> 20
  • 注意
    • value最大大小为512MB
  • API
命令格式功能备注复杂度
setset key value新建/修改key-value不管key是否存在都可以O(1)
setnxsetnx key value新建key-value当key不存在才能执行O(1)
set key value xxset key value xx修改key-value当key存在时才能执行O(1)
msetmset k1 v1 k2 v2 …批量设置key-value如果不存在则创建;如果存在则修改O(n)
setrange
getget key获取key对应的value不存在key,返回nilO(1)
mgetmget key1 key2 …批量获取key-value如果key不存在,返回nilO(n)
getrangegetrange key start end获取字符串指定下标的所有值O(1)
setrangesetrange key index value设置指定下标对应的值
getsetgetset key value先获取key的value,再更新如果key不存在,则返回nil,然后创建key-valueO(1)
incrincr key自增1如果key不存在,则创建并返回1;如果不能自增,则报错O(1)
incrbyincrby key n自增整数n如果key不存在,则创建并返回n;如果不能自增,则报错O(1)
incrfloatincrfloat key n自增浮点数n如果key不存在,则创建并返回n;如果不能自增,则报错O(1)
decrdecr key自减1如果key不存在,则创建并返回-1;如果不能自减,则报错O(1)
decrbydecrby key n自减整数n如果key不存在,则创建并返回-n;如果不能自减,则报错O(1)
decrfloatdecrfloat key n自减浮点数n如果key不存在,则创建并返回-n;如果不能自减,则报错O(1)
appendappend key value追加value如果key不存在,则新建O(1)
strlenstrlen key获取key对应value长度O(1)
deldel key删除key-valueO(1)

hash类型

  • 结构

    • key --> field | value

      user -> id   | 0age  | 20name | jack
      
  • 特点

    • 可以看做small redis
  • API

命令格式功能备注复杂度
hsethset key field value设置key对应field的vlaue如果key不存在,则新建field-valueO(1)
hsetnxhsetnx key field value当不存在field时进行设置如果file存在,则不执行O(1)
hmsethmset key field1 value1 field2 value2 … fieldN valueN批量设置field-value果field不存在,则创建新field-valueO(n)
hgethget key field获取key对应field的value如果field不存在,则返回(nil)O(1)
hmgethmget key field1 field2 … fieldN批量返回filed对应的value如果key不存在,则返回nilO(n)
hgetallhgetall key返回hash key对应所有的field和valueO(n)
hexistshexists key field判断是否存在field不存在,返回0;存在,返回1O(1)
hdelhdel key field删除key对应的field-value如果key不存在,则返回0O(1)
hlenhlen key获取field的数量如果key不存在,则返回0O(1)
hkeyshkeys key获取所有的fieldO(n)
hvalshvals key获取所有的valueO(n)
hincrhincr key file使field对应value自增1field不存在,创建新field-value,其value为1;如果不能自增则报错O(1)
hdecrhdecr key file使field对应value自减1field不存在,创建新field-value,其value为-1;如果不能自减少则报错O(1)
hincrbyhincrby key field num使field对应value自增numfield不存在,创建新field-value,其value为num;如果不能自增则报错O(1)
hdecrbyhincrby key field num使field对应value自减numfield不存在,创建新field-value,其value为-num;如果不能自减少则报错O(1)
hincrbyfloathincrbyfloat key field floatnum使field对应value自增floatnumfield不存在,则创建field-value,其value为floatnum;如果不能自增则报错O(1)

list类型

  • 结构
    • key --> element1- element2- …- elementN
    • username --> a-b-c-a-b-c
  • 特点
    • 元素可以重复,有序
  • API
命令格式功能备注复杂度
lpushlpush key value1 value2 … valueN从列表左插入值(1~N个)没有则创建O(n)
rpushrpush key value1 value2 … valueN从列表右侧插入值(1~N个)没有则创建O(n)
linsertlinsert key before|after value newValue从列表第一个value的前|后插入新元素newValueO(n)
lpoplpop key从列表左侧弹出第一个itemO(n)
rpoprpop key从列表右侧弹出第一个itemO(1)
lremlrem key count value根据count的值,从列表中删除count个等于value的项count>0,从左到右;count<0,从右到左;couont=0,删除所有O(n)
ltrimltrim key start end按照索引范围修剪列表保留[start,end]的元素O(n)
lrangelrange key start end获取列表中指定索引范围所有的item查找[start,end]的元素O(n)
lindexlindex key index获取列表中指定索引的item支持反向索引,即负数O(n)
llenllen key获取列表的长度O(1)
lsetlset key index newValue修改列表中index下标的元素为newValue支持反向索引,即负数O(n)
blpopblpop key timeout阻塞timeout秒后弹出左侧元素O(1)
brpopbrpop key timeout阻塞timeout秒后弹出右侧元素O(1)

set类型

  • 结构
    • key --> element1,elements2,…,elementN
    • subject --> chinese,music,art,…,maths
  • 特点
    • 元素不重复,无序
  • API
命令格式功能备注复杂度
saddsadd key element向集合中添加元素element如果element已存在,则添加失败O(1)
spopspop key从集合中随机弹出一个元素O(1)
sremsrem key element将集合中key的element删除O(1)
scardscard key获取集合中元素个数O(n)
sismembersismember key item判断item是否为集合中的元素O(1)
srandmembersrandmember key随机取出集合中的一个元素是取出不是弹出,即不会破坏的原有集合O(1)
smemberssmembers key获取集合中所有的元素O(n)
sdiffsdiff set1 set2求两个集合的差集O(n)
sunionsunion set1 set2求两个集合的并集O(n)
sintersinter set1 set2求两个集合的交集O(n)
sdiffstoresdiffstore newSet set1 set2求两个集合的差集,结果组成新集合O(n)
sinterstoresinterstore newSet set1 set2求两个集合的交集,结果组成新集合O(n)
sunionstoresunionstore newSet set1 set2求两个集合的并集,结果组成新集合O(n)

zset类型

  • 结构

    • key --> score | value
    ranking -->  2    | 小明5    | 小红12   | 阿强
    
  • 特点

    • 元素不重复,有序
    • score单独可以重复,value单独可以重复
    • score-value不能重复
  • API

    命令格式功能备注复杂度
    zaddzadd key score element [可以是多对]添加score-elementO(logN)
    zcardzcard key返回集合中元素的个数O(1)
    zremzrem key element删除集合中指定索引的elementO(1)
    zincrbyzincrby key increScore element将集合中element的score增加increScore当increScore为负数时,实现减少的功能O(1)
    zscorezcore key element获取集合中element的scoreO(n)
    zrankzrank key element获取集合中指定元素的排名O(1)
    zrangezrange key start end [withscores]获取集合中排行从start到end的元素以score从小到达进行排序;加上withscores会返回element的scoreO(log(n)+m)
    zrangebyscorezrangebyscore key minScore maxScore获取集合中score位于[minScore,maxScore]之间的元素O(log(n)+m)
    zcountzcount key minScore maxScore获取集合中score处于[minScore,maxScore]之间的element个数O(log(n)+m)
    zremrangebyrankzremrangebyrank key start end删除指定排名内的元素O(log(n)+m)
    zremrangebyscorezremrangebyscore key minScore maxScore删除指定分数内的元素O(log(n)+m)
    zrevrank
    zrevrange
    zrevrangebyscore
    zinterstore
    zunionstore

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

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

相关文章

Batch学习:开启高效学习之旅

Batch学习&#xff1a;开启高效学习之旅 Batch学习是一种学习方法&#xff0c;它将学习内容划分为多个批次进行学习。这种方法有助于学生更好地掌握知识&#xff0c;提高学习效果。本文将详细介绍Batch学习的概念、方法和优势&#xff0c;并探讨如何有效地实施Batch学习。 一…

数据集MNIST手写体识别 pyqt5+Pytorch/TensorFlow

GitHub - LINHYYY/Real-time-handwritten-digit-recognition: VGG16和PyQt5的实时手写数字识别/Real-time handwritten digit recognition for VGG16 and PyQt5 pyqt5Pytorch内容已进行开源&#xff0c;链接如上&#xff0c;请遵守开源协议维护开源环境&#xff0c;如果觉得内…

redis集群简单介绍及其搭建过程

Redis集群 1、哨兵模式 哨兵可以有多个&#xff0c;从服务器也可以有多个&#xff0c;从服务器也可以有多个&#xff0c;在Redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态&#xff0c;如果master节点异常&#xff0c;则会实现主从切换&#x…

百度大模型安全荣获2024世界智能产业博览会“Find智能科技创新应用典型案例”

6月20日&#xff0c;2024世界智能产业博览会在天津开幕。会议聚焦人工智能、智能网联汽车、智能制造等年度热点议题&#xff0c;由世界智能产业博览会组委会指导&#xff0c;世界智能产业博览会组委会秘书处、中国新一代人工智能战略发展研究院、中国软件行业协会、中国网络空间…

极客之夜 | XCTF国际网络攻防联赛十周年庆典圆满落幕

在数字化浪潮的推动下&#xff0c;网络安全已成为全球关注的焦点。十年磨一剑&#xff0c;XCTF国际网络攻防联赛以其卓越的赛事品质和深远的影响力&#xff0c;成为网络安全领域的一面旗帜。极客之夜&#xff0c;我们齐聚一堂&#xff0c;共同庆祝XCTF的十年辉煌&#xff0c;展…

sheng的学习笔记-AI-高斯混合模型(GMM)

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 sheng的学习笔记-AI-聚类(Clustering)-CSDN博客需要学习前置知识&#xff1a; 聚类&#xff0c;可参考 sheng的学习笔记-AI-聚类(Clustering)-CSDN博客 EM算法&#xff0c;可参考 sheng的学习笔记-AI-EM算法-CSDN博客 贝…

OVS:网桥的状态:fail_mode模式

目录 1.创建一个普通的ovs网桥不做任何配置 2.检测fail_mode值&#xff0c;默认为空 3.创建netns并配置sto网桥的两个普通端口并配置IP信息 4.默认情况下的两个端口下挂两个虚拟机v3,v4天然通信-ping-ok 5.修改网桥的fail_mode为standalone,原来的通信没有影响 6.修改了…

okcc呼叫中心系统通话声音小有哪几种处理办法?

处理OKCC呼叫中心系统通话声音过小的几种方法包括&#xff1a; 第一种&#xff1a; 1、IP话机&#xff1a;通过话机上的音量调节按钮来进行调节。 2、模拟话机&#xff1a;修改语音网关上的增益来实现。 “ 往IP增益”表示电话呼入的声音调节&#xff0c;主要针对内部分…

伸缩盒模型,flex布局

目录 1、伸缩容器、伸缩项目 2、主轴方向(flex-direction) 3、主轴换行方式(flex-wrap) 4、flex-flow 5、主轴对齐方式(justify-content) 6、侧轴对齐方式_一行(align-items) 7、侧轴对齐方式_多行(align-content) 8、元素水平垂直居中 9、项目在主轴的基准长度(flex-b…

运维.Linux下执行定时任务(中:Cron的常用替代方案)

运维系列 Linux下执行定时任务&#xff08;中&#xff1a;Cron的常用替代方案&#xff09; - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAd…

CMA软件测试报告对企业和用户有什么好处?

CMA是中国计量认证的简称&#xff0c;由省级以上人民政府计量行政部门对检测机构的检测能力及可靠性进行的一种全面的认证及评价&#xff0c;认证对象是所有对社会出具公正数据的产品质量监督检验机构及其它各类实验室&#xff0c;是需要强制性认证的资质。取得该资质认证的&am…

【golang学习之旅】复杂数据类型——指针 函数

系列文章 【golang学习之旅】使用VScode安装配置Go开发环境 【golang学习之旅】报错&#xff1a;a declared but not used 【golang学习之旅】Go 的基本数据类型 【golang学习之旅】深入理解字符串string数据类型 【golang学习之旅】go mod tidy 【golang学习之旅】记录一次 p…

spring02

bean中公共属性抽取出来&#xff0c;统一配置 <bean class"com.cj.Animal" id"animal"><property name"category" value"犬科"/></bean><bean class"com.cj.Dog" id"dog1" parent"anim…

这就是人性的丑恶,很残酷但很现实

这些年我喜欢跟垃圾撕破脸&#xff0c;包括垃圾亲戚&#xff0c;我是不会跟你讲什么感情的&#xff0c;该滚蛋就滚蛋。我最不喜欢听什么今日留一线&#xff0c;日后好相见。 之前我还不懂事的时候&#xff0c;就有那种亲戚叫我帮他介绍工作&#xff0c;我照做了。 结果&#xf…

Android 11 ,默认授予预置应用/APK 需要的权限,解决permission denied for window type 2003 问题。

写这篇文章的原因是解决了一个APP闪退的问题&#xff0c;闪退的原因是插拔U盘时&#xff0c;注册的广播接收者接收到广播需要弹出一个Dialog询问是否需要打开U盘&#xff0c;这个Dialog设置的是系统级别悬浮窗&#xff0c;没有这个权限&#xff0c;报错导致闪退&#xff0c;下面…

【SpringBoot文件压缩下载】文件夹压缩下载

1. Controller 使用hutool的ZipUtil根据文件夹路径打包成File对象然后调用自定义的FileResponseUtil进行单线程数据传输 import cn.hutool.core.date.DateUtil; import com.github.xiaoymin.knife4j.annotations.ApiSort; import im.gy.zfile.core.util.FileResponseUtil; im…

腰背肌筋膜炎的症状及治疗

腰背肌筋膜炎的症状 一、疼痛特点&#xff1a; 主要表现为腰背部弥漫性钝痛&#xff0c;尤以两侧腰肌及髂嵴上方更为明显。疼痛特点为晨起痛&#xff0c;日间轻&#xff0c;傍晚复重。长时间不活动或活动过度均可诱发疼痛&#xff0c;病程长&#xff0c;且因劳累及气候变化而发…

微信小程序封装请求API-promise格式

微信小程序原生的请求API就是wx.request wx.request({url: example.php, //仅为示例&#xff0c;并非真实的接口地址data: {x: ,y: },header: {content-type: application/json // 默认值},success (res) {console.log(res.data)} })有时候不能很好的适配我们的开发需求&#…

通过Nginx实战讲解HTTP的301和302状态码的区别

通过Nginx实战讲解HTTP的301和302状态码的区别 1. 简介2. 301永久重定向3. 302临时重定向1. 简介 HTTP状态码中,301和302都是网页重定向跳转。301重定向是一种永久重定向,而302跳转是暂时的跳转    ● 为什么需要重定向:    网站是会被大量用户收藏在自己的浏览器收藏夹…

小红书营销:解锁企业增长新引擎,与小红书集成实现精准获客

在数字化营销的新时代&#xff0c;小红书以其独特的社区文化和精准的用户定位&#xff0c;成为了品牌和企业争相入驻的热门平台。今天将探讨如何通过小红书平台进行营销获客&#xff0c;并强调与企业集成的重要性&#xff0c;以实现更高效的品牌增长。 一、小红书营销的独特优…