zoukankan      html  css  js  c++  java
  • redis--列表

    redis列表是简单的字符串列表,安装插入顺序排序,您可以添加一个元素到列表的头部(左边)或者尾部(右边)

    一个列表可以包含超过40亿个元素。

    实例:

     1 127.0.0.1:6379> flushdb
     2 OK
     3 127.0.0.1:6379> keys *
     4 (empty list or set)
     5 127.0.0.1:6379> lpush runoobkey redis
     6 (integer) 1
     7 127.0.0.1:6379> lpush runoobkey mongodb
     8 (integer) 2
     9 127.0.0.1:6379> lrange runoobkey 0 5
    10 1) "mongodb"
    11 2) "redis"
    View Code

    redis列表命令

    下表列出了相关的基本命令:

    redis Blpop命令移出并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹元素为止。

    blpop命令基本语法如下:

    blpop  list1  list2...  listn  timeout

    返回值:如果列表为空返回一个nil,否则,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的key,第二个元素是被弹出元素的值。

    1 127.0.0.1:6379> lrange shidong 0 2
    2 1) "44"
    3 2) "23"
    4 127.0.0.1:6379> keys *
    5 1) "zhang"
    6 2) "shidong"
    7 127.0.0.1:6379> blpop shidong 10#返回含有两个元素的列表,第一个是被弹出元素所属的key,第二个元素是被弹出元素的值。
    8 1) "shidong"
    9 2) "44"
    View Code

    Brpop命令:

    redis  Brpop命令移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

    假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。 反之,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的 key ,第二个元素是被弹出元素的值。

    1 127.0.0.1:6379> lrange shidong 0 2
    2 1) "44"
    3 2) "23"
    4 127.0.0.1:6379> keys *
    5 1) "zhang"
    6 2) "shidong"
    7 127.0.0.1:6379> brpop shidong 2 #返回两个元素,第一个是key,第二个是返回的最后一个元素
    8 1) "shidong"
    9 2) "23"
    View Code

    Brpoplpush 命令

    Brpoplpush 命令从列表中弹出一个值(最后一个元素),并将弹出的元素插入到另外一个列表中并返回它,如果没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

    返回值:假如在指定时间内没有任何元素弹出,则返回一个nil和等待时长,反之,返回一个含有两个元素的列表,第一个元素是被弹出元素的值,第二个元素是等待时长。

    实例:

     1 127.0.0.1:6379> keys *
     2 (empty list or set)
     3 127.0.0.1:6379> lpush shidong 22
     4 (integer) 1
     5 127.0.0.1:6379> lpush shidong 30
     6 (integer) 2
     7 127.0.0.1:6379> lpush shidong 40
     8 (integer) 3
     9 127.0.0.1:6379> lrange shidong 0 2
    10 1) "40"
    11 2) "30"
    12 3) "22"
    13 127.0.0.1:6379> brpoplpush shidong sd 10#从列表弹出一个元素插入另外一个列表,并返回插入的value值
    14 "22"
    15 127.0.0.1:6379> lrange shidong 0 2
    16 1) "40"
    17 2) "30"
    18 127.0.0.1:6379> brpoplpush shidong sd 10
    19 "30"
    20 127.0.0.1:6379> lrange shidong 0 2
    21 1) "40"
    22 127.0.0.1:6379> lrange sd 0 2#查看被插入的列表value值
    23 1) "30"
    24 2) "22"
    View Code

    lindex命令

    该命令用于通过索引获取列表中的元素,你也可以使用负数下表,以-1表示列表的最后一个元素,-2表示列表的倒数第二个元素,以此类推。

    基本语法如下:

    lindex  key_name  index_position

    返回值:列表中下标为指定索引值的元素,如果指定索引值不在列表的区间范围内,返回nil.

    实例:

     1 127.0.0.1:6379> lrange mylist 0 10
     2 1) "name"
     3 2) "my"
     4 3) "!"
     5 4) "world"
     6 5) "Hello"
     7 127.0.0.1:6379> lindex mylist 0
     8 "name"
     9 127.0.0.1:6379> lrange mylist 0 10
    10 1) "name"
    11 2) "my"
    12 3) "!"
    13 4) "world"
    14 5) "Hello"
    15 127.0.0.1:6379> lindex mylist 2
    16 "!"
    17 127.0.0.1:6379> lindex mylist -1
    18 "Hello"
    View Code

    linsert 命令

    该命令用于在列表的元素前或者后插入元素,当指定元素不存在于列表中时,不执行任何操作,当列表不存在时,被视为空列表,不执行任何操作,如果key不是列表类型,返回一个错误。

    linsert命令基本语法如下:

    linsert  key_name  before  existing_value  new_value

    返回值:如果命令执行成功,返回插入操作完成之后,列表的长度,如果没有找到指定元素,返回-1,如果key不存在或为空列表,返回0。

     1 127.0.0.1:6379> lrange mylist 0 10
     2 1) "to"
     3 2) "welcome"
     4 3) "hello"
     5 4) "world"
     6 127.0.0.1:6379> linsert mylist before "world" "home"
     7 (integer) 5
     8 127.0.0.1:6379> lrange mylist 0 10
     9 1) "to"
    10 2) "welcome"
    11 3) "hello"
    12 4) "home"
    13 5) "world"
    14 127.0.0.1:6379> linsert mylist before "list" "back"
    15 (integer) -1
    16 127.0.0.1:6379> linsert list before "list" "back"
    17 (integer) 0
    View Code

    llen命令

    llen该命令用于返回列表的长度,如果列表key不存在,则key被解释为一个空列表,返回0,如果key不是列表类型,返回一个错误。

    llen命令基本语法:llen  key_name

    返回值:列表的长度。

    实例:

     1 127.0.0.1:6379> keys *
     2 1) "mylist"
     3 127.0.0.1:6379> lrange mylist 0 10
     4 1) "to"
     5 2) "welcome"
     6 3) "hello"
     7 4) "home"
     8 5) "world"
     9 127.0.0.1:6379> llen mylist #返回列表mylist的长度为5
    10 (integer) 5
    View Code

    lpop命令

    redis lpop命令用于移除并返回列表的第一个元素。

    基本语法如下:lpop  key_name

    返回值:列表的第一个元素,当列表key不存在时,返回nil。

    实例:

     1 127.0.0.1:6379> lrange mylist 0 10
     2 1) "to"
     3 2) "welcome"
     4 3) "hello"
     5 4) "home"
     6 5) "world"
     7 127.0.0.1:6379> llen mylist
     8 (integer) 5
     9 127.0.0.1:6379> lpop mylist #取出key为mylist列表的第一个值
    10 "to"
    11 127.0.0.1:6379> lrange mylist 0 10
    12 1) "welcome"
    13 2) "hello"
    14 3) "home"
    15 4) "world"
    View Code

    lpush命令

    该命令将一个或多个值插入到列表头部,如果key不存在,一个空列表会被创建并执行lpush操作,当key存在但不是列表类型时,返回一个错误。

    基本语法如下:lpush  key_name value1 value2 ... valuen

    返回值:执行lpush命令后,列表的长度。

    实例:

    1 127.0.0.1:6379> lpush mylist 23
    2 (integer) 5 #5为返回的列表的长度
    3 127.0.0.1:6379> lrange mylist 0 -1
    4 1) "23\"
    5 2) "welcome"
    6 3) "hello"
    7 4) "home"
    8 5) "world"
    View Code

    lpushx命令

    将一个值插入到已存在的列表头部,列表不存在时操作无效。

    基本语法:lpushx  key_name  value1 value2 ... valuen

    返回值:lpushx命令执行之后,列表的长度。

    实例:

     1 127.0.0.1:6379> lrange mylist 0 -1
     2 1) "23\"
     3 2) "welcome"
     4 3) "hello"
     5 4) "home"
     6 5) "world"
     7 127.0.0.1:6379> lpushx mylist sdsd #插入到列表头部
     8 (integer) 6
     9 127.0.0.1:6379> lrange mylist 0 -1
    10 1) "sdsd"
    11 2) "23\"
    12 3) "welcome"
    13 4) "hello"
    14 5) "home"
    15 6) "world"
    16 127.0.0.1:6379> lpushx name sd #返回错误,0代表错误
    17 (integer) 0
    View Code

    lrange 命令

    作用:获取列表指定范围内的元素。

    实例:

    1 127.0.0.1:6379> lrange mylist 0 -1
    2 1) "sdsd"
    3 2) "23\"
    4 3) "welcome"
    5 4) "hello"
    6 5) "home"
    7 6) "world"
    View Code

    lrem 命令

    作用:移除列表元素。

    基本语法:lrem  key_name  count  value

    返回值:被移除元素的数据,列表不存在时返回0.

    实例:

     1 127.0.0.1:6379> keys *
     2 (empty list or set)
     3 127.0.0.1:6379> rpush mylist hello
     4 (integer) 1
     5 127.0.0.1:6379> rpush mylist hello
     6 (integer) 2
     7 127.0.0.1:6379> rpush mylist foo
     8 (integer) 3
     9 127.0.0.1:6379> rpush mylist home
    10 (integer) 4
    11 127.0.0.1:6379> rpush mylist hello
    12 (integer) 5
    13 127.0.0.1:6379> rpush mylist home
    14 (integer) 6
    15 127.0.0.1:6379> rpush mylist hello
    16 (integer) 7
    17 127.0.0.1:6379> lrange mylist 0 -1
    18 1) "hello"
    19 2) "hello"
    20 3) "foo"
    21 4) "home"
    22 5) "hello"
    23 6) "home"
    24 7) "hello"
    25 127.0.0.1:6379> lrem mylist -2 "hello"
    26 (integer) 2
    27 127.0.0.1:6379> lrange mylist 0 -1
    28 1) "hello"
    29 2) "hello"
    30 3) "foo"
    31 4) "home"
    32 5) "home"
    View Code

    lset 命令

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

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

    基本语法:lset  key_name  index  value

    返回值:操作成功返回ok,否则返回错误信息。

    实例:

     1 127.0.0.1:6379> lrange mylist 0 -1
     2 1) "hello"
     3 2) "hello"
     4 3) "foo"
     5 4) "home"
     6 5) "home"
     7 
     8 127.0.0.1:6379> lrange mylist 0 0
     9 1) "hello"
    10 
    11 127.0.0.1:6379> lset mylist 0 welcome
    12 OK
    13 127.0.0.1:6379> lrange mylist 0 0
    14 1) "welcome"
    15 127.0.0.1:6379> lset mylist 4 "superman"
    16 OK
    17 127.0.0.1:6379> lrange mylist 0 -1
    18 1) "welcome"
    19 2) "hello"
    20 3) "foo"
    21 4) "home"
    22 5) "superman"
    View Code

    ltrim命令

    ltrim对一个列表进行修复(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。

    下标0表示列表的第一个元素,以1表示列表的第二个元素,以此类推,以-1表示列表的最后一个元素,-2表示列表的倒数第二个元素,以此类推。

    基本语法:ltrim  key_name  start  stop

    实例:

     1 127.0.0.1:6379> lrange mylist 0 -1
     2 1) "welcome"
     3 2) "hello"
     4 3) "foo"
     5 4) "home"
     6 5) "superman"
     7 127.0.0.1:6379> ltrim mylist 1 3
     8 OK
     9 127.0.0.1:6379> lrange mylist 0 -1
    10 1) "hello"
    11 2) "foo"
    12 3) "home"
    View Code

    Rpop命令

    该命令用于移除并返回列表的最后一个元素。

    基本语法如下:rpop  key_name

    返回值:列表的最后一个元素,当列表不存在时,返回nil.

    实例:

    1 127.0.0.1:6379> lrange mylist 0 -1
    2 1) "hello"
    3 2) "foo"
    4 3) "home"
    5 127.0.0.1:6379> rpop mylist #删除列表最后一个元素并显示出来
    6 "home"
    7 127.0.0.1:6379> lrange mylist 0 -1
    8 1) "hello"
    9 2) "foo"
    View Code

    Rpoplpush 命令

    作用:移除列表的最后一个元素,并将该元素添加到另一个列表并返回。

     基本语法:rpoplpush  source_key_name  destination_key_name

    返回值:被弹出的元素。

    实例:

     1 127.0.0.1:6379> lrange mylist 0 5
     2 1) "redis"
     3 2) "hello"
     4 3) "foo"
     5 4) "php"
     6 127.0.0.1:6379> rpoplpush mylist list
     7 "php"
     8 127.0.0.1:6379> rpoplpush mylist list
     9 "foo"
    10 127.0.0.1:6379> lrange mylist 0 5
    11 1) "redis"
    12 2) "hello"
    13 127.0.0.1:6379> lrange list 0 5
    14 1) "foo"
    15 2) "php"
    View Code

    rpush命令

    该命令用于将一个或多个值插入到列表的尾部(最右边)

    如果列表不存在,一个空列表会被创建并执行rpush操作,当列表存在但不是列表类型时,返回一个错误。

    基本语法:rpush  key_name  value1 value2 。。。valueN

    返回值:执行rpush操作后,列表的长度。

    实例:

     1 127.0.0.1:6379> lrange mylist 0 5
     2 1) "redis"
     3 2) "hello"
     4 127.0.0.1:6379> rpush mylist hehe haha linux centos
     5 (integer) 6
     6 127.0.0.1:6379> lrange mylist 0 -1
     7 1) "redis"
     8 2) "hello"
     9 3) "hehe"
    10 4) "haha"
    11 5) "linux"
    12 6) "centos"
    View Code

    rpushx命令

    该命令用于讲一个值插入到已存在的列表尾部(最后边),如果列表不存在,操作无效。

    基本语法: rpushx  key_name   value1  value2 ...valueN

    返回值:执行rpushx操作后,列表的长度。

    实例:

     1 127.0.0.1:6379> rpush mylist hello
     2 (integer) 1
     3 127.0.0.1:6379> rpush mylist foo
     4 (integer) 2
     5 127.0.0.1:6379> rpushx mylist bar#插入到已存在列表的尾部
     6 (integer) 3
     7 127.0.0.1:6379> lrange mylist 0 -1
     8 1) "hello"
     9 2) "foo"
    10 3) "bar"
    11 127.0.0.1:6379> rpushx mylist2 far #列表不存在,返回值为0,代表操作无效
    12 (integer) 0
    13 127.0.0.1:6379> lrange mylist 0 -1
    14 1) "hello"
    15 2) "foo"
    16 3) "bar"
    View Code
  • 相关阅读:
    组策略导入导出secedit
    ipad常见错误
    ipad系统路径
    内核操作注册表例子
    WoW64子系统
    win2003 shutdown命令
    regedit 导入注册表
    windbg for CLR
    WM_POWERBROADCAST
    OpenSSL命令
  • 原文地址:https://www.cnblogs.com/sd880413/p/8243601.html
Copyright © 2011-2022 走看看