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:返回成员在集合中的排名。(索引从大到小)。

  • 相关阅读:
    SSM中 web.xml配置文件
    实现网站的登陆,注册,查看商品详细信息,加入购物车,注销登陆等简单功能。
    操作步骤
    mysql 查询 练习题及答案
    水仙花数!
    Spark SQL(4)-Unresolved Plan到Analyzed Plan
    Spark SQL(3) Parser到Unresolved LogicPlan
    Spark SQL(2)-InternalRow和TreeNode
    Spark SQL(1)-简述
    logstash output到kafka记录与总结( No entry found for connection 2)
  • 原文地址:https://www.cnblogs.com/alsf/p/9098223.html
Copyright © 2011-2022 走看看