zoukankan      html  css  js  c++  java
  • 二,redis常用的数据类型--list

    二,list数据类型----》列表

    1,常用指令

    1)lpush 命令将一个或多个值插入到列表头部

    2)lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定

    127.0.0.1:6379> lpush list laoli laowang laozhang laoxu
    (integer) 4
    127.0.0.1:6379> lrange list 0 -1
    1) "laoxu"
    2) "laozhang"
    3) "laowang"
    4) "laoli"
    127.0.0.1:6379> lrange list 0 2
    1) "laoxu"
    2) "laozhang"
    3) "laowang"

    在上面可以看出,最后一个laoxu在第一位,第一个输入的laoli在最后一位,可以看出,lpush命令是将值插入到列表的头部。

    3)rpush  是将数值插入列表的尾部,和lpush是相反的

    127.0.0.1:6379> rpush list1 li sun wang zhang xu
    (integer) 5
    127.0.0.1:6379> lrange list1 0 -1
    1) "li"
    2) "sun"
    3) "wang"
    4) "zhang"
    5) "xu"

    4)lpop和rpop

        lpop是一处第一个元素;rpop是移除第二个元素;

    127.0.0.1:6379> lrange list1 0 -1
    1) "li"
    2) "sun"
    3) "wang"
    4) "zhang"
    5) "xu"
    127.0.0.1:6379> lpop list1
    "li"
    127.0.0.1:6379> rpop list1
    "xu"
    127.0.0.1:6379> lrange list1 0 -1
    1) "sun"
    2) "wang"
    3) "zhang"

     5)lrem 移除指定的key

    127.0.0.1:6379> lrange list 0 -1
    1) "laoxu"
    2) "laozhang"
    3) "laowang"
    4) "laoli"
    127.0.0.1:6379> lrem list 1 laozhang
    (integer) 1
    127.0.0.1:6379> lrange list 0 -1
    1) "laoxu"
    2) "laowang"
    3) "laoli"

    6)ltrim 修剪list里面的值

    127.0.0.1:6379> lrange list 0 -1
    1) "laoxu"
    2) "laowang"
    3) "laoli"
    127.0.0.1:6379> ltrim list 1 2
    OK
    127.0.0.1:6379> lrange list 0 -1
    1) "laowang"
    2) "laoli"

    7)rpoplpush  将最后一个元素移除,并存放到一个list列表里面并返还

    127.0.0.1:6379> lrange list 0 -1
    1) "laolv"
    2) "laol"
    3) "laog"
    4) "laow"
    5) "laowang"
    6) "laoli"
    127.0.0.1:6379> rpoplpush list laotest
    "laoli"
    127.0.0.1:6379> lrange list 0 -1
    1) "laolv"
    2) "laol"
    3) "laog"
    4) "laow"
    5) "laowang"
    127.0.0.1:6379> lrange laotest 0 -1
    1) "laoli"

    8)lset 

      Redis Lset

    通过索引来设置元素的值。

      当索引参数超出范围,或对一个空列表进行 LSET 时,返回一个错误

    第一个,检查list是否存在,不存在新建list,下面是hellolaowang变成laolihello

    127.0.0.1:6379> exists list
    (integer) 0
    127.0.0.1:6379> lpush list hellolaoli
    (integer) 1
    127.0.0.1:6379> lpush list hellolaowang
    (integer) 2
    127.0.0.1:6379> lrange list 1 -1
    1) "hellolaoli"
    127.0.0.1:6379> lrange list 0 -1
    1) "hellolaowang"
    2) "hellolaoli"
    127.0.0.1:6379> lset list 0 laolihello
    OK
    127.0.0.1:6379> lrange list 0 -1
    1) "laolihello"
    2) "hellolaoli"

    第二个,不存在的list,会报错

    127.0.0.1:6379> keys *
    1) "list"
    127.0.0.1:6379> lset list1 0 test
    (error) ERR no such key

    9)linsert 在列表元素的前后插入元素,如果列表中的元素不存在,则新插入的元素无效

          可以应用到消息队列场景。

    127.0.0.1:6379> lrange list 0 -1
    1) "laolihello"
    2) "hellolaoli"
    127.0.0.1:6379> linsert list before hellolaoli hello
    (integer) 3
    127.0.0.1:6379> lrange list 0 -1
    1) "laolihello"
    2) "hello"
    3) "hellolaoli"
    127.0.0.1:6379> linsert list after hellolaoli laoli
    (integer) 4
    127.0.0.1:6379> lrange list 0 -1
    1) "laolihello"
    2) "hello"
    3) "hellolaoli"
    4) "laoli"
    127.0.0.1:6379> linsert list after h test
    (integer) -1

    2,list小结

    1)list其实是双向的链表,可以反向的查找和遍历;

    2)list可以作为栈,可以作为队列

    3)可以应用于消息队列系统

  • 相关阅读:
    Array的应用
    事物的操作
    定义集合
    wxWidgets 在 Linux 下开发环境配置
    Emacs 中 GDB 的使用
    wxWidgets 在 Windows 下开发环境配置
    Ubuntu14.04终端主机名+用户名修改配色方案
    S5PV210之内外存学习
    Ubuntu14.04进行配置符号链接arm2009q3.tar.bz2
    Ubuntu14.041+VMware12.0NET方式网卡连接虚拟机联网问题解决方法
  • 原文地址:https://www.cnblogs.com/invban/p/14189840.html
Copyright © 2011-2022 走看看