当前位置 博文首页 > 文章内容

    redis--(队列)list--常用命令、小结

    作者: 栏目:未分类 时间:2020-07-03 11:01:19

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    1.常用命令  

    #####################  lpush 左边添加元素
    my-redis:0>lpush list one 1 my-redis:0>lpush list two 2 my-redis:0>lpush list three 3
    ##################### lrange 查看list元素 可以指定下标 0 -1(代表所有) my
    -redis:0>lrange list 0 -1 three two one
    ##################### rpush 右边添加元素 my
    -redis:0>rpush list test 4 my-redis:0>lrange list 0 -1 three two one test #################### lpop 移除左边第一个元素 my-redis:0>lpop list three
    #################### rpop 移除右边第一个元素 my
    -redis:0>rpop list test my-redis:0>lrange list 0 -1 two one
    #################### lindex 查看某个下标的值 my
    -redis:0>lindex list 0 two my-redis:0>lindex list 1 one
    ################### llen 查看队列的长度 my
    -redis:0>llen list 2 my-redis:0>lrange list 0 -1 two one
    ################# lrem key 数量 元素值 移除队列中多少个 值为xxx的元素 my
    -redis:0>lrem list 1 one 1 my-redis:0>lrange list 0 -1 two my-redis:0>flushdb OK my-redis:0>lpush mylist huang 1 my-redis:0>lpush mylist huang1 2 my-redis:0>lpush mylist huang2 3 my-redis:0>lpush mylist huang3 4 my-redis:0>lpush mylist huang4 5 my-redis:0>lrange mylist 0 -1 huang4 huang3 huang2 huang1 huang
    ################### ltrim key 下标 下标 剪辑队列 保留 某个下标到某个下标的值,其他移除 my
    -redis:0>ltrim mylist 1 2 OK my-redis:0>lrange mylist 0 -1 huang3 huang2 my-redis:0>flushdb OK my-redis:0>lpush list 0 hello 2 my-redis:0>lrange list 0 -1 hello 0 my-redis:0>flushdb OK my-redis:0>lrange list hello ERR wrong number of arguments for 'lrange' command my-redis:0>lpush list hello 1 my-redis:0>lpush list hello1 2 my-redis:0>lpush list hello2 3 my-redis:0>lrange list 0 -1 hello2 hello1 hello
    ######################## lpoplpush 原来的队列 新的队列
    移除列表的最后一个元素,将他移动到新的列表中!
    my-redis:0>rpoplpush list list2
    hello
    
    my-redis:0>lrange list2 0 -1
    hello
    
    my-redis:0>lrange list 0 -1
    hello2
    hello1
    
    ######################## lset 队列 下标 新的值
    将列表中指定下标的值替换为另外一个值,更新操作,不存在则报错
    
    my-redis:0>lset list 0 test
    OK
    
    my-redis:0>lrange list 0 -1
    test
    hello1
    
    my-redis:0>flushdb
    OK
    
    my-redis:0>rpush  list  hello
    1
    
    my-redis:0>rpush  list  word
    2
    
    ############################# linsert 队列 before/after 值 插入的值
                                     将某个具体的value插入到列把你中某个元素的前面或者后面!
    
    my-redis:0>linsert list before  word other
    3
    
    my-redis:0>lrange list 0 -1
    hello
    other
    word
    
    my-redis:0>linsert list after  word other
    4
    
    my-redis:0>lrange list 0 -1
    hello
    other
    word
    other
    
    my-redis:0>

    2.小结

    1.他实际上是一个链表,before Node after , left,right 都可以插入值
    2.如果key 不存在,创建新的链表
    3.如果key存在,新增内容
    4.在两边插入或者改动值,效率最高! 中间元素,相对来说效率会低一点~
     
    应用场景:消息排队!消息队列 (Lpush Rpop), 栈( Lpush Lpop)!