zoukankan      html  css  js  c++  java
  • redis数据类型:lists

    redis的list类型其实就是一个每个子元素都是string类型的双向链表。

    我们可以通过push,pop操作从链表的头部或者尾部添加删除元素,这样list即可以作为

    栈,又可以作为队列。

    lpush方法:从头部添加字符串元素

    lrange方法:从list中取数据,从头部取

    127.0.01:6379> lpush list1 "hello" "word"
    (integer) 2
    127.0.01:6379> LRANGE list1 0 -1
    1) "word"
    2) "hello"

    rpush方法:从尾部压入

    127.0.01:6379> rpush list2 "hello" "word"
    (integer) 2
    127.0.01:6379> LRANGE list2 0 -1
    1) "hello"
    2) "word"

    linsert方法:在指定键的list的指定元素前或者后插入

    127.0.01:6379> rpush list2 "hello" "word"
    (integer) 2
    127.0.01:6379> LRANGE list2 0 -1
    1) "hello"
    2) "word"
    127.0.01:6379> LINSERT list2 before "word" "in"
    (integer) 3
    127.0.01:6379> LRANGE list2 0 -1
    1) "hello"
    2) "in"
    3) "word"

    lset方法:设置list指定下标的元素值

    127.0.01:6379> lpush list3 one two three
    (integer) 3
    127.0.01:6379> lrange list3 0  -1
    1) "three"
    2) "two"
    3) "one"
    127.0.01:6379> lset list3 0 onechange
    OK
    127.0.01:6379> lrange list3 0  -1
    1) "onechange"
    2) "two"
    3) "one"

    lrem方法:从key对应list中删除n个和value相同的元素。返回删除掉的个数

    (n<0从尾部删除,n=0全部删除)

    127.0.01:6379> rpush list2 "one" "one" "one"
    (integer) 6
    127.0.01:6379> lrange list2 0  -1
    1) "hello"
    2) "in"
    3) "word"
    4) "one"
    5) "one"
    6) "one"
    127.0.01:6379> lrem list2 2 "one"
    (integer) 2
    127.0.01:6379> lrange list2 0  -1
    1) "hello"
    2) "in"
    3) "word"
    4) "one"
    127.0.01:6379> lrem list2 1 "one"
    (integer) 1
    127.0.01:6379> lrange list2 0  -1
    1) "hello"
    2) "in"
    3) "word"
    127.0.01:6379> lrem list2 1 "one"
    (integer) 0

    ltrim方法:保留key对应list的指定范围的数据

    127.0.01:6379> rpush list5 "one" "two" "three" "four"
    (integer) 4
    127.0.01:6379> lrange list5 0 -1
    1) "one"
    2) "two"
    3) "three"
    4) "four"
    127.0.01:6379> LTRIM list5 1 2
    OK
    127.0.01:6379> lrange list5 0 -1
    1) "two"
    2) "three"

    lpop方法:从list头部删除元素,并返回删除元素

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

    127.0.01:6379> rpush list6 "one" "two" "three"
    (integer) 3
    127.0.01:6379> lrange list6 0 -1
    1) "one"
    2) "two"
    3) "three"
    127.0.01:6379> rpop list6
    "three"
    127.0.01:6379> lpop list6
    "one"
    127.0.01:6379> lrange list6 0 -1
    1) "two"

    rpoplpush方法:从一个list中移除尾部元素,将这个元素添加到另一个list的头部

    127.0.01:6379> lrange list2 0 -1
    1) "hello"
    2) "in"
    3) "word"
    127.0.01:6379> lrange list3 0 -1
    1) "onechange"
    2) "two"
    3) "one"
    127.0.01:6379> rpoplpush list2 list3
    "word"
    127.0.01:6379> lrange list2 0 -1
    1) "hello"
    2) "in"
    127.0.01:6379> lrange list3 0 -1
    1) "word"
    2) "onechange"
    3) "two"
    4) "one"

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

    127.0.01:6379> lrange list3 0 -1
    1) "word"
    2) "onechange"
    3) "two"
    4) "one"
    127.0.01:6379> LINDEX list3 2
    "two"

    llen方法:返回key对应的list的长度

    127.0.01:6379> lrange list3 0 -1
    1) "word"
    2) "onechange"
    3) "two"
    4) "one"
    127.0.01:6379> llen list3
    (integer) 4

  • 相关阅读:
    【转】React Native 关于箭头函数、普通函数与点击事件的调用
    【转】React Native Config.h not found ( glog-0.3.4 )
    微软必应Bing搜索引擎这几天无法访问!
    Beyond Compare 4 提示错误“这个授权密钥已被吊销”的解决办法
    flock
    Getting.Started.with.Unity.2018.3rd.Edition
    Joe Hocking
    Unity 2018 By Example 2nd Edition
    Unity 2017 Game Optimization 新版
    Why is it called “armature” instead of “skeleton”? or perhaps “rig”?
  • 原文地址:https://www.cnblogs.com/LvLoveYuForever/p/5732800.html
Copyright © 2011-2022 走看看