redis列表,集合,有序集合_第1页
redis列表,集合,有序集合_第2页
redis列表,集合,有序集合_第3页
redis列表,集合,有序集合_第4页
redis列表,集合,有序集合_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Redis数据类型之列表类型(List)向列表两端增加元素。LPUSHkeyvalue[value...]RPUSHkeyvalue[value...]向列表左边增加元素127.0.0.1:6379>lpushl:list213(integer)3在redis中的存在为:312对应的index分别为:012向列表后边增加元素127.0.0.1:6379>rpushr:list123(integer)3在redis中的存在为:123对应的index分别为:012从列表两端弹出元素LPOPkey (从左边弹出元素)RPOPkey(从右边弹出元素)LPOP命令从列表左边弹出一个元素,会分两步完成,第一步是将列表左边的元素从列表中移除,第二步是返回被移除的元素值。127.0.0.1:6379>lpopl:list"3“127.0.0.1:6379>rpopr:list"3“思考:如何利用以上命令模拟队列操作?(使用rpush和lpop命令或者lpush和rpop命令)获取列表中元素的个数LLENkey127.0.0.1:6379>llenl:list(这个l:list就是一个key的名字,“:list”没有任何意思)(integer)2获取列表片段LRANGEkeystartstopLRANGE命令是列表类型最常用的命令之一,获取列表中的某一片段,将返回start、stop之间的所有元素(包含两端的元素),索引从0开始。索引可以是负数,如:“-1”代表最后边的一个元素。127.0.0.1:6379>lrangel:list021)"1"2)"2"删除列表中指定的值LREMkeycountvalueLREM命令会删除列表中前count个值为value的元素,返回实际删除的元素个数。根据count值的不同,该命令的执行方式会有所不同:当count>0时,LREM会从列表左边开始删除。当count<0时,LREM会从列表后边开始删除。当count=0时,LREM删除所有值为value的元素。获得/设置指定索引的元素值LINDEXkeyindexLSETkeyindexvalue获得指定列表片段只保留列表指定片段,指定范围和LRANGE一致LTRIMkeystartstop向列表中插入元素LINSERTkeyBEFORE|AFTERpivotvalue该命令首先会在列表中从左到右查找值为pivot的元素,然后根据第二个参数是BEFORE还是AFTER来决定将value插入到该元素的前面还是后面。当pivot元素不存在的时候,插入失败,返回:<integer>-1疑问点::::将元素从一个列表转移到另一个列表中RPOPLPUSHsourcedestinationRedis数据类型之集合(Set)集合类型列表类型存储内容最多2的32次方–1个字符串最多2的32次方–1个字符串有序性否是唯一性是否集合类型的常用操作是向集合中加入或删除元素、判断某个元素是否存在等,由于集合类型的Redis内部是使用值为空的散列表实现,所有这些操作的时间复杂度都为0(1)。Redis还提供了多个集合之间的交集、并集、差集的运算。增加/删除元素SADDkeymember[member...]SREMkeymember[member...]127.0.0.1:6379>saddsetabc(integer)3127.0.0.1:6379>saddseta(因为是重复元素,所以添加失败,返回0)(integer)0127.0.0.1:6379>sremsetcd(因为remcd中只能remc,因为set中没有d,所以返回1)(integer)1获得集合中的所有元素SMEMBERSkey127.0.0.1:6379>smembersset1)"b"2)"a”判断元素是否在集合中无论集合中有多少元素都可以极速的返回结果。SISMEMBERkeymember127.0.0.1:6379>sismemberseta(integer)1127.0.0.1:6379>sismemberseth(integer)0集合的差集(different)运算A-B,属于A并且不属于B的元素构成的集合。SDIFFkey[key...]127.0.0.1:6379>saddsetA123(integer)3127.0.0.1:6379>saddsetB234(integer)3127.0.0.1:6379>sdiffsetAsetB1)"1"127.0.0.1:6379>sdiffsetBsetA1)"4"集合的交集(intersection)运算A∩B,属于A且属于B的元素构成的集合。SINTERkey[key...]127.0.0.1:6379>sintersetAsetB1)"2"2)"3"集合的并集(union)运算A∪B,属于A或者属于B的元素构成的集合。SUNIONkey[key...]127.0.0.1:6379>sunionsetAsetB1)"1"2)"2"3)"3"4)"4"获得集合中元素的个数SCARDkey127.0.0.1:6379>smemberssetA1)"1"2)"2"3)"3"127.0.0.1:6379>scardsetA(integer)3从集合中弹出一个元素SPOPkey127.0.0.1:6379>spopsetA"2“注意:由于集合是无序的,所有SPOP命令会从集合中随机选择一个元素弹出Redis之有序集合(SortedSet)在集合类型的基础上有序集合类型为集合中的每个元素都关联一个分数,这使得我们不仅可以完成插入、删除和判断元素是否存在在集合中,还能够获得分数最高或最低的前N个元素、获取指定分数范围内的元素等与分数有关的操作。在某些方面有序集合和列表类型有些相似。1、二者都是有序的。2、二者都可以获得某一范围的元素。但是,二者有着很大区别:1、列表类型是通过链表实现的,获取靠近两端的数据速度极快,而当元素增多后,访问中间数据的速度会变慢。2、有序集合类型使用散列表实现,所有即使读取位于中间部分的数据也很快。3、列表中不能简单的调整某个元素的位置,但是有序集合可以(通过更改分数实现)4、有序集合要比列表类型更耗内存。增加元素向有序集合中加入一个元素和该元素的分数,如果该元素已经存在则会用新的分数替换原有的分数。返回值是新加入到集合中的元素个数,不包含之前已经存在的元素。注:member可以看成elementZADDkeyscoremember[scoremember...]127.0.0.1:6379>zaddscoreboard80zhangsan89lisi94wangwu(integer)3127.0.0.1:6379>zaddscoreboard97lisi(integer)0获取元素的分数ZSCOREkeymember127.0.0.1:6379>zscorescoreboardlisi"97"获得排名在某个范围的元素列表ZRANGEkeystartstop[WITHSCORES]ZREVRANGEkeystartstop[WITHSCORES]该命令会按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素(包含两端的元素)。127.0.0.1:6379>zrangescoreboard021)"zhangsan"2)"wangwu"3)"lisi“如果需要获得元素的分数的可以在命令尾部加上WITHSCORES参数127.0.0.1:6379>zrangescoreboard01WITHSCORES1)"zhangsan"2)"80"3)"wangwu"4)"94获得指定分数范围的元素ZRANGEBYSCOREkeyminmax[WITHSCORES][LIMIToffsetcount]127.0.0.1:6379>ZRANGEBYSCOREscoreboard9097WITHSCORES(其中包括9097)1)"wangwu"2)"94"3)"lisi"4)"97"127.0.0.1:6379>ZRANGEBYSCOREscoreboard90(97WITHSCORES(其中只包括90,不包括97)1)"wangwu"2)"94“127.0.0.1:6379>ZRANGEBYSCOREscoreboard70100limit12(其中包括70和100,且有分页效果,1代表startIndex,2代表size)1)"wangwu"2)"lisi"127.0.0.1:6379>zrangebyscorescoreboard85100limit02withscores增加某个元素的分数返回值是更改后的分数。ZINCRBYkeyincrementmember给lisi加4分127.0.0.1:6379>ZINCRBYscoreboard4lisi"101“(其中101为增加后相加后的结果。另外如果member不存在,那么就会以这个分数创建一个member)获得集合中元素的数量ZCARDkey127.0.0.1:6379>ZCARDscoreboard(integer)3获得指定分数范围内的元素个数ZCOUNTkeyminmax127.0.0.1:6379>ZCOUNTscoreboard8090(integer)1(其中如果min/max有“(”的时候就不包括当前值,不允许有“)”,否则报error)按照排名范围删除元素ZREMRANGEBYRANKkeystartstop127.0.0.1:6379>ZREMRANGEBYRANKscoreboard01(integer)2127.0.0.1:6379>ZRANGEscoreboard0-11)"lisi"按照分数范围删除元素ZREMRANGEBYSCOREkeyscoreStartscoreStop127.0.0.1:6379>zaddscoreboard84zhangsan (integer)1127.0.0.1:6379>ZREMRANGEBYSCOREscoreboard80100(integer)1获取元素的排名ZRANKkeymember(从小到大,默认的排列顺序)ZREVRANKkeymember(从大到小的倒序,但不会改变实际的顺序)从小到大127.0.0.1:6379>ZRANKscoreboardlisi(integer)0从大到小127.0.0.1:6379>ZREVRANKscoreboardzhangsan(integer)1Redis之生存时间Redis在实际使用过程中更多的用作缓存,然而缓存的数据一般都是需要设置生存时间的,即:到期后数据销毁。EXPIREkeyseconds127.0.0.1:6379>settest123OK127.0.0.1:6379>EXPIREtest10(integer)1127.0.0.1:6379>TTLtest(integer)4127.0.0.1:6379>TTLtest(integer)3127.0.0.1:6379>TTLtest(integer)3127.0.0.1:6379>TTLtest(integer)2清除生存时间PERSISTkey127.0.0.1:6379

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论