• redis 的使用 ( list列表类型操作)


    list 数据类型 列表类型

        list 类型是一个双向操作 从链表的头部或者尾部添加删除元素

        list 既可以用作栈 也可以用作队列

        list 链表的类型应用场合:

            获取最新的 10 个用户的信息

            select * from user order by logintime desc limit 10;

            数据不复杂 但是 对数据库的负载比较大

            如给关键字 logintime 设置索引 耗费资源

            用 redis 通过 list 链表实现以上功能

            在 list 链表中只保留最新的10个数据

            每一次进来一个新数据就删除一条旧数据

            从而实现节约数据资源 减少服务器负载压力

        // list 类型 操作

        lpush key string 在 key 对应 list 头部添加字符串元素

        rpush key string 在 key 对应 list 尾部添加字符串元素

        rpop key 从 list 尾部删除元素 并返回删除的元素

        lpop key 从 list 头部删除元素 并返回删除的元素

        llen key 返回 key 对应 list 的长度 key 不存在 返回 0 如果key对应的类型不是 list 返回错误

        lrange key start end 返回指定区间内的元素 从下标 0 开始

        ltrin key start end 截取list 保留指定区间的元素

        // 注意

        // lpush 和 rpop 结合使用

        // rpush 和 lpop 结合使用

        eg : 只保存5条数据

        原理  (队列) list 链表 namelogin 保存最新3条数据的

            头部 >>> 添加新用户 >>> laowen9

            laowen8

            laowen7

            laowen6

            尾部 >>> 踢出旧用户 >>> laowen5

        // 操作开始 如下

        // 头部每更新一条 就删除尾部一条 最终只保留5条数据

        lpush namelogin laowen1    // OK 表示添加OK
        
        lpush namelogin laowen2 // OK 表示添加OK
        
        lpush namelogin laowen3 // OK 表示添加ok
        
        lpush namelogin laowen4 // OK 表示添加OK
        
        lpush namelogin laowen5 // OK 表示添加OK

        lpush namelogin laowen6 // OK 表示添加OK

        rpop namelogin  // 返回 "laowen1" 删除list表最后一条数据

        lrange namelogin 0 4

        // 返回值为

        // 1) "laowen6"
        
        // 2) "laowen5"
        
        // 3) "laowen4"
        
        // 4) "laowen3"
        
        // 5) "laowen2"

        llen namelogin  // 返回 (integer) 5 // 返回的是数据的长度

        // 截取lsit 保留指定范围内的元素

        ltrim namelogin 2 4 // 返回 OK

        lrange namelogin 0 2

        // 返回值为

        // 1) "laowen5"
        
        // 2) "laowen4"
        
        // 3) "laowen3"

        总结 队列 栈 区别

        队列  >>>  头部 添加数据 尾部 删除数据

        头部 添加新用户 >>> laowen9

        laowen8

        laowen7

        laowen6

        尾部 踢出旧用户 >>> laowen5

        栈  >>>  头部 添加数据 头部 删除数据

        头部 添加新用户 >>> laowen9  

        头部 踢出旧用户 >>> laowen5

        laowen8

        laowen7

        laowen6

  • 相关阅读:
    Halcon学习(车牌识别)
    Keil新建STM32工程(LED灯)
    Keil新建STM32工程(LED灯)
    Keil STM32F4xx_DFP.1.0.8.pack下载链接
    android 如何单独编译 img及作用
    Linux绑定硬件IRQ到指定SOC的CPU核
    sysrq: SysRq : HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f)
    内核线程同步之completion
    kmalloc,vmalloc , malloc
    ARMv8 与 Linux的新手笔记(转载)
  • 原文地址:https://www.cnblogs.com/laowenBlog/p/5444678.html
Copyright © 2020-2023  润新知