zoukankan      html  css  js  c++  java
  • Redis数据结构(四)

    存储list:
    list存储方式采用头和尾插入的方式,这样效率快,如果没有这个插入的数据,redis自己会创建这个数据,如果是中间插入的话,采用list方式效率就会很慢。

    ArrayList使用数组方式:
    采用索引的方式,去查询的速度是非常快的,新增和删除操作,涉及到位移操作,所以比较慢,
    LinkedList使用双向链接方式:
    每个元素都记录了前后元素的指针,插入和删除操作时候,只是改变了前后元素的指针操作即可,速度就会非常快了。
    (1)双向链表插入数据
    (2)双向链表删除数据

    存储list常用命令:
    (1)两端添加
    链表左端添加:
    语法:lpush [key][value][value]
    lpush mylist a b c
    语法:rpush [key][value][value]
    lpush mylist2 1 2 3
    (2)查看列表
    语法:lrange [table][start][end] (从零开始计数,负数从表尾开始)
    lrange mylist 0 5
    lrange mylist2 0 -2

    (3)两端弹出
    从列表中弹出数据,这时列表中就没有数据了
    左端弹出:
    lpop mylist
    右端弹出:
    rpop list
    (4)获取列表元素个数
    左端查看:
    llen mylist
    (5)扩展命令
    仅在存在的表头插入数据,不存在这个表,就不会插入数据了。
    lpushx mylist x
    rpushx mylist2 x
    删除命令
    自动遍历数据,然后从头开始删除,规定个数的数据
    lrem mylist3 2 3 从头删除2个3数据
    从尾往上删除
    rrem mylist3 -2 1 从后往前删除两个1
    插入元素
    lset mylist 3 aaa 在第三个元素前添加‘aaa’
    在元素前插入数据
    创建数据:
    lpush mylist4 a b c
    lpush mylist4 a b c
    在b前插入数据
    linsert mylist4 before b 11
    在b后插入数据
    linsert mylist4 after b 22

    尾部元素砍出,并添加到头部
    创建数据
    lpush mylist5 1 2 3
    lpush mylist6 a b c
    数据处理
    rpoplpush mylist5 mylist6
    应用在消息队列当操作中。

     

  • 相关阅读:
    linux 服务器---FastDFS分布式文件服务器配置
    JFinal getModel方法(从页面表单中获取Model对象)+数据库存储问题
    实现Callable接口。带返回值的线程
    Spring 自动化装配Bean
    Spring--基于代理类ProxyFactoryBean的AOP实现
    Jfinal中的validator理解/详解
    Jfinal中的文件上传
    HotSpot学习(二):虚拟机的启动过程源码解析
    HotSpot学习(一):编译、启动与调试
    Netty的对象池
  • 原文地址:https://www.cnblogs.com/liuyangfirst/p/7098285.html
Copyright © 2011-2022 走看看