zoukankan      html  css  js  c++  java
  • 【Redis】基本数据类型常用操作

    在redis里,可以把list巧妙的运用成 栈、队列、阻塞队列等。

    一、push 插入元素

    1. lpush,在头部插入

    将一个值或者多个值,插入到列表的头部。

    lpush list one
    lpush list two
    lpush list three
    

    使用lpush,这里的l可以看成left,也就是在左边插入,所以目前list是这样的[three, two, one]

    2. rpush,在尾部插入

    接下来,使用rpush,在右边也就是在列表尾部插入元素。

    rpush list right1 right2
    

    此时,list是这样的[three, two, one, right1, right2]。用lrange list 0 -1来获取下:

    二、range 通过区间获取元素

    可以想象成python里的range(),通过传入开始和结束的下标,获取元素。

    lrange list 1 4
    

    三、pop 移除元素

    既然上面可以左右的添加操作,那么移除自然也有左右之分了。

    移除操作,返回的是被移除的元素。

    1. lpop 左边移除

    lpop list
    

    2. rpop 右边移除

    rpop list
    

    四、lindex 通过下标获取元素

    lindex list 1
    

    五、llen 获取list长度

    返回列表的长度。

    llen list
    

    六、lrem 移除指定元素

    可以指定移除元素,并且指定数量。

    lrem list 2 yi222
    

    现在list里有3个yi222,我要移除2个。

    七、ltrim 修剪

    通过ltrim只保留指定的部分,去掉其他的部分,被截取的list发生改变。

    ltrim list 1 4
    

    这里下标从1到4的都保留,其他都被去掉了。

    八、组合命令 rpoplpush 移除并添加

    这是组合命令,移除list最后一个元素,并且将它添加到另一个list。

    rpoplpush list list2
    

    这里list是原列表,list2是目标列表,目标列表不存在会去创建。

    九、exists 判断key 是否存在

    exists list
    

    存在返回1,不存在就返回0。

    十、lset,设置指定下标的值

    lset list 1 test
    

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

    十一、linsert,指定位置之前/之后插入值

    之前

    linsert list before test before_test
    

    这是在元素test之前,插入元素before_test

    之后

    linsert list after test after_test
    

    这是在元素test之后,插入元素after_test

    十二、小结

    从上述list的操作中,可以观察出它的一些特点:

    • 它实际上是一个链表,节点的左右都方便插入。
    • 如果key不存在,会创建新的链表。
    • 如果key存在,就新增元素。
    • 如果移除了所有的值,就是空链表,也就是不存在。
    • 在两边插入或者改动值,效率最高。中间的元素操作,效率相对低。

    list在实际中可以灵活运用,比如队列,栈,都能用list来实现。

    --不要用肉体的勤奋,去掩盖思考的懒惰--
  • 相关阅读:
    死锁
    Notepad++源代码阅读——窗口封装与继承
    Notepad++源代码阅读——窗口元素组织与布局
    选择问题(selection problem)
    插入排序 | 冒泡排序 | 希尔排序 | 堆排序 | 快速排序 | 选择排序 | 归并排序
    编程之美2014---大神与三位小伙伴
    ulimit 修改 open files & core
    tmux手记
    匿名访问windows server 2008 R2 文件服务器的共享
    WINDOWS系统变量
  • 原文地址:https://www.cnblogs.com/pingguo-softwaretesting/p/14887918.html
Copyright © 2011-2022 走看看