zoukankan      html  css  js  c++  java
  • redis的list类型以及其操作

    lists类型

    给你个图;'

    lists类型以及操作
    List是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作中key理解为链表的名字。Redis的list类型其实就是每一个子元素都是String类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列。

    操作:
    lpush
    从头部添加字符串元素

    127.0.0.1:6379> lpush list1 one
    (integer) 1 //数字表示list的长度
    127.0.0.1:6379> lpush list1 two
    (integer) 2
    127.0.0.1:6379> lrange list1 0 -1 // 0表示开始展示的元素所在的下标,1表示最后展示的元素所在位置的下标,最后就是-1.0在头的开始位置
    1) "two"
    2) "one"
    127.0.0.1:6379> lpush list1 three four
    (integer) 4

    rpush
    在key对应的list尾部添加字符串元素

    127.0.0.1:6379> rpush list01 hello
    (integer) 1
    127.0.0.1:6379> rpush list01 world
    (integer) 2
    127.0.0.1:6379> lrange list01 0 -1
    1) "hello"
    2) "world"

    linsert
    向key对应的list的指定元素前或后插入元素

    127.0.0.1:6379> linsert list01 before "world" java
    (integer) 3
    127.0.0.1:6379> lrange list01 0 -1
    1) "hello"
    2) "java"
    3) "world"
    127.0.0.1:6379> linsert list01 after "world" "jiangxi"
    (integer) 4
    127.0.0.1:6379> lrange list01 0 -1
    1) "hello"
    2) "java"
    3) "world"
    4) "jiangxi"

    lrange
    查看指定下标范围的对应list中的值

    127.0.0.1:6379> lrange list01 0 -1
    1) "hello"
    2) "java"
    3) "world"
    4) "jiangxi"
    127.0.0.1:6379> lrange list01 1 2
    1) "java"
    2) "world"

    Lset
    设置list中指定下标的值

    127.0.0.1:6379> lset list01 0 "hi"
    OK
    127.0.0.1:6379> lrange list01 0 -1
    1) "hi"
    2) "java"
    3) "world"
    4) "jiangxi"
    127.0.0.1:6379>

    lrem
    从key对应的list中删除n个和value相同的元素(n<0从尾删除,n=0全部删除)

    127.0.0.1:6379> lpush list01 hello world hello world world hello hi my my hello hello
    (integer) 11
    127.0.0.1:6379> lrange list01 0 -1
    1) "hello"
    2) "hello"
    3) "my"
    4) "my"
    5) "hi"
    6) "hello"
    7) "world"
    8) "world"
    9) "hello"
    10) "world"
    11) "hello"
    127.0.0.1:6379> lrem list01 1 "hello"
    (integer) 1
    127.0.0.1:6379> lrange list01 0 -1
    1) "hello"
    2) "my"
    3) "my"
    4) "hi"
    5) "hello"
    6) "world"
    7) "world"
    8) "hello"
    9) "world"
    10) "hello"
    127.0.0.1:6379> lrem list01 -1 "hello"
    (integer) 1
    127.0.0.1:6379> lrange list01 0 -1
    1) "hello"
    2) "my"
    3) "my"
    4) "hi"
    5) "hello"
    6) "world"
    7) "world"
    8) "hello"
    9) "world"
    127.0.0.1:6379> lrem list01 0 "hello"
    (integer) 3
    127.0.0.1:6379> lrange list01 0 -1
    1) "my"
    2) "my"
    3) "hi"
    4) "world"
    5) "world"
    6) "world"
    127.0.0.1:6379>

    ltrim
    保留指定key的值范围内的数据,其他的删除

    127.0.0.1:6379> lrange list01 0 -1
    1) "my"
    2) "my"
    3) "hi"
    4) "world"
    5) "world"
    6) "world"
    127.0.0.1:6379> ltrim list01 1 2
    OK
    127.0.0.1:6379> lrange list01 0 -1
    1) "my"
    2) "hi"

    lpop
    从list的头部删除元素,并返回删除元素

    127.0.0.1:6379> lrange list01 0 -1
    1) "my"
    2) "hi"
    127.0.0.1:6379> lpop list01
    "my"
    127.0.0.1:6379> lrange list01 0 -1
    1) "hi"

    rpop
    从list的尾部删除元素,并返回删除元素

    127.0.0.1:6379> lrange list01 0 -1
    1) "my"
    2) "name"
    3) "is"
    127.0.0.1:6379> rpop list01
    "is"
    127.0.0.1:6379> lrange list01 0 -1
    1) "my"
    2) "name"
    127.0.0.1:6379>


    rpoplpush
    从第一个list的尾部移除元素并添加到第二个list的头部

    127.0.0.1:6379> lrange list01 0 -1
    1) "my"
    2) "name"
    3) "is"
    4) "guo"
    5) "daxia"
    127.0.0.1:6379> lpush list02 i like java
    (integer) 3
    127.0.0.1:6379> lrange list02 0 -1
    1) "java"
    2) "like"
    3) "i"
    127.0.0.1:6379> rpoplpush list01 list02
    "daxia"
    127.0.0.1:6379> lrange list01 0 -1
    1) "my"
    2) "name"
    3) "is"
    4) "guo"
    127.0.0.1:6379> lrange list02 0 -1
    1) "daxia"
    2) "java"
    3) "like"
    4) "i"


    lindex
    返回名称为key的list中index位置的元素

    127.0.0.1:6379> lrange list01 0 -1
    1) "my"
    2) "name"
    3) "is"
    4) "guo"
    5) "daxia"
    127.0.0.1:6379> lindex list01 5
    (nil)
    127.0.0.1:6379> lindex list01 4
    "daxia"

    llen
    返回key对应的list的长度

    127.0.0.1:6379> lrange list01 0 -1
    1) "my"
    2) "name"
    3) "is"
    4) "guo"
    5) "daxia"
    127.0.0.1:6379> llen list01
    (integer) 5
  • 相关阅读:
    Valgrind使用转载 Sanny.Liu
    Caffe模型读取 Sanny.Liu
    JNI动态库生成、编译、查看相关简易资料 Sanny.Liu
    GDB调试,转载一位大牛的东西 Sanny.Liu
    Android处理图片工具(转载) Sanny.Liu
    添加可点击的imagebottom,有个点击动画效果 Sanny.Liu
    去OpenCVManager,大部分为转载,仅当自己学习使用 Sanny.Liu
    转载: vim使用技巧 Sanny.Liu
    结构体数组初始化三种方法,转载 Sanny.Liu
    AsyncTask机制学习 Sanny.Liu
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/6566783.html
Copyright © 2011-2022 走看看