zoukankan      html  css  js  c++  java
  • Redis学习(6)-常用命令

    List命令

    value值为LinkedList类型。

    使用环境:

    1,做大数据集合的增删。

    2,任务队列。用户任务队列

    链表查看

    lrange  key  start  end:获取链表从start到end的元素值

    start,end从0开始计数,也可为负数,若为-1则表示链表尾部的元素,-2表示倒数第二个,依次类推。

    例如:list1  【0,1,2,3,4,5】,查到从0到第三个值

    lrange    list1    0    3

    两端添加

    lpush  key  value1,value2,value3...:在key所关联list头部插入所有的value。

    例如:lpush    list1    a    b    c    d

    rpush  key  value1,value2,value3...:在该list尾部添加元素

    两端删除(弹出)

    lpop  key:从头部弹出元素,删除头部第一个元素。

    rpop  key:从尾部弹出元素。

    扩展命令

    llen  key:返回指定key关联链表中元素的个数。

    删除某种元素:效率极其低下

    lrem  key  count  value:删除count个值为value的元素。如果count大于0,从头向尾遍历并删除count个值为value的元素。

    例如:删除链表中所有的a元素。(注意:如果删除所有的,则count指定为0

    lrem    list3    0    a

    从头删除2个字母:"C"

    lrem    mylist    2    C

    如果从尾部到头删除两个字母C,则:

    lrem    mylist    -2    C

    通过索引替换元素:(效率不高)

    lset  key  index  value:设置链表中的index的脚标的元素值,0代表头部,-1代表尾部。

    在索引前/后插入元素:(效率不高)

    linsert  key  before/after  pivot  value:在pivot元素前/后插入value这个元素。

    例如:

    linsert    list1    before    aaaa    cccc

    rpoplpush  resource  destination:将链表中尾部元素弹出并插入到头部【循环操作】

    例如:任务队列:要求把ist1中的d弹出,把元素插入到list2的头部

    rpoplpush  list1  list2

    循环链表:把list1的元素从头部插入到尾部,循环操作。

    rpoplpush  list1  list1

    Set命令

    Redis操作中,涉及到两个大数据集合的并集,交集,差集运算,一般使用set。

    添加

    sadd    key    value1  value2  value3..

    例如:

    sadd    set1    a    b    c    d

    取值

    获取set中所有成员

    smembers    key    

    例如:smembers  set1

    1,判断参数中指定成员是否在该set中,1表示存在,0表示不存在或者本身该key不存在。

    sismember    key    member

    例如:

    sismember  set1  b

    场景:会员有一个专门的集合,打开视频的适合,判断用户是在会员集合里面,如果不在就是普通用户。

    删除

    删除set中指定成员

    srem    key    member1    member2    member3    ...

    例如:从集合set1中删除b,d

    srem    set1    b    d

     

    集合运算

    差集运算

    返回key1和key2相差的成员,而且与key的顺序有关,即返回差集

    sdiff    key1    key2...

    例如:set1  a  b  c  d  

       set2  b  e

    求哪些属于set1,但是不属于set2。

    要求属于set1的,就需要把set1放在前面:命令如下:

    sdiff    set1    set2

    交集运算

    返回交集

    sinter    key1    key2    key3....

    并集运算

    返回并集

    sunion    key1    key2    key3 ...

    扩展命令

    scard  key:获取set中成员的数量

    例如:scard  set1  结果:4

    场景:查看网站会员数量。

    srandmember  key:随机返回set中一个成员

    例如:srandmember  set1

    sdiffstore  distination  key1  key2  key3 . . .:将key1,key2,key3相差的成员存储到distination上

    sinterstore  disination  key1  key2  key3 . . :将返回的交集存储到distination上

    sunionstore  distination  key1  key2  key3 . . .:将返回的并集存储到distination上

     

    有序Set

    集合里面数据有序,并且默认从小到大排序,不重复。并且每个元素都需要手动赋予一个分数

    例如:一个集合里面需要存:小明,小红,小张:手动辅助:400  小明,200  小张,350  小红。

    保存之后:集合中存的顺序是:小张,小红,小明。

    集合倒序:小明  小红  小张

    有序Set集合,专门用来做排行榜

    赋值:

    zadd    key    score    member    score2    member2    score3    member3。。。

    例子:

    zadd    set1    500    xiaozhang    300    xiaohong    100    xiaoqiang

    因为set中默认按照从小到大排序:则set中的顺序是:100  xiaoqiang  300  xiaohong  500  xiaozhang

    取值:

    zcore key member返回指定成员的分数

    例如:

    zcore    set1    xiaoqiang:结果:100

    zcard  key:返回集合中成员数量

    删除:

    zrem key member1  member2  member3:删除集合中指定成员

    例如:

    zrem    set1    xiaoqiang    xiaohong

    范围查询:

    zrange key start end [withscores] :获取集合中脚标为star到end的成员,[withscores]参数标明返回的成员包含其分数(由小到大)

    zrevrange key start end [withscores] :获取集合中脚标为star到end的成员,[withscores]参数标明返回的成员包含其分数(由大到小

    例如:从set1集合查询所有元素:

    zrange    set1    0   -1

    要使得返回的结果带着分数:

    zrange    set1    0    -1   [withscores]

    结果:

    扩展命令:

    zremrangebyrank  key  start  stop;按照排名范围删除元素

    例如把第一名到第二名删除:

    zremrangebyrank    set1    0    1

    zremrangbyscore  key  min  max:按照分数排名范围删除元素

    例如:把200到300分范围的元素删除:

    zremrangebyscore    set1    200    300

    zrangebyscore  key  min  max[withscores] [limit  offset  count]:

    返回分数在[min,max]之间的成员并按照分数从低到高排序,withscores,显示分数。limit  offset  count:offset表明从脚标为offset的元素

    开始并返回count个成员。

    例如:返回500,7500范围内的,其中从第一名开始的两位成员,并且显示分数。

    zincreby  key  increment  member:设置指定成员的增加的分数,返回值是更改后的分数

    例如:给小张分数加500

    zcount  key  min  ax:获取分数  min  max之间的成员个数。

    zrank  key  member:返回成员在集合中的排名。(索引从小到大)。

    zrevrank  key  member:返回成员在集合中的排名。(索引从大到小)。

  • 相关阅读:
    Lucene.Net 2.3.1开发介绍 —— 二、分词(一)
    控制‘控制台应用程序’的关闭操作
    详解for循环(各种用法)
    敏捷软件开发
    Sql Server的一些知识点
    在SharePoint 2010 中配置Remote Blob Storage FILESTREAM Provider
    使用LotusScript操作Lotus Notes RTF域
    JOpt Simple 4.5 发布,命令行解析器
    John the Ripper 1.8.0 发布,密码破解工具
    PacketFence ZEN 4.0.1 发布,网络接入控制
  • 原文地址:https://www.cnblogs.com/alsf/p/9098223.html
Copyright © 2011-2022 走看看