• 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

  • 相关阅读:
    移动端屏幕适配解决方案
    ES6学习笔记(1)——模块化
    弹性盒布局学习总结
    阮一峰之webpack-demos(译)
    阮一峰的Git分支管理策略之学习总结
    移动端测试之服务器搭建
    webApp 移动Touch框架
    Javascript 严格模式详解
    caller和callee的区别
    avalon 中require.config源码分析
  • 原文地址:https://www.cnblogs.com/LvLoveYuForever/p/5732800.html
Copyright © 2020-2023  润新知