当前位置: 首页 > news >正文

做presentation的网站莱芜吧莱芜贴吧

做presentation的网站,莱芜吧莱芜贴吧,常德网站开发哪家好,有主体新增网站文章目录 前置知识列表类型的特点 命令LPUSHLPUSHXRPUSHRPUSHXLRANGELPOPRPOPLINDEXLREMLINSERTLTRIMLSETLLEN 阻塞版本命令BLPOPBRPOP 命令总结内部编码测试内部编码 使用场景消息队列分频道的消息队列 模拟栈和队列 前置知识 列表类型是⽤来存储多个有序的字符串#xff0c… 文章目录 前置知识列表类型的特点 命令LPUSHLPUSHXRPUSHRPUSHXLRANGELPOPRPOPLINDEXLREMLINSERTLTRIMLSETLLEN 阻塞版本命令BLPOPBRPOP 命令总结内部编码测试内部编码 使用场景消息队列分频道的消息队列 模拟栈和队列 前置知识 列表类型是⽤来存储多个有序的字符串列表中的每个字符串称为元素element⼀个列表最多可以存储232 ​ - 1个元素。在Redis中可以对列表两端插⼊push和弹出pop还可以获取指定范围的元素列表、获取指定索引下标的元素等列表是⼀种⽐较灵活的数据结构它可以充当栈和队列的⻆⾊在实际开发上有很多应⽤场景 列表两端插入和弹出操作 约定最左侧元素下标是0 列表的获取、删除等操作 列表类型的特点 1.列表类型是有序的。这意味着可以通过索引下标获取某个元素或者某个范围的元素列表 2.区分获取和删除的区别 lrem1 b是从列表中把从左数遇到的前1个b元素删除这个操作会导致列表的⻓度从5变成4但是执⾏lindex 4只会获取元素但列表⻓度是不会变化的 3.列表中的元素是允许重复的 命令 LPUSH 将⼀个或者多个元素从左侧放⼊头插到list中 如果key不存在的话会新建key 语法LPUSH key element [element ...] 返回值插⼊后list的⻓度 时间复杂度只插⼊⼀个元素为O(1)插⼊多个元素为O(N)N为插⼊元素个数 LPUSHX 在key存在时将⼀个或者多个元素从左侧放⼊头插到list中。不存在直接返回 语法LPUSHX key element [element ...] 返回值插⼊后list的⻓度 时间复杂度只插⼊⼀个元素为O(1)插⼊多个元素为O(N)N为插⼊元素个数 RPUSH 将⼀个或者多个元素从右侧放⼊尾插到list中 语法RPUSH key element [element ...] 返回值插⼊后list的⻓度 时间复杂度只插⼊⼀个元素为O(1)插⼊多个元素为O(N)N为插⼊元素个数 RPUSHX 在key存在时将⼀个或者多个元素从右侧放⼊尾插到list中 语法RPUSHX key element [element ...] #此处的X exists返回值插⼊后list的⻓度 时间复杂度只插⼊⼀个元素为O(1)插⼊多个元素为O(N)N为插⼊元素个数 LRANGE 获取从start到end区间的所有元素左闭右闭 语法LRANGE key start stop 返回值指定区间的元素 时间复杂度O(N) 注意1前面的序号是专门给结果集使用的序号和list的下标无关 注意2在C当中下标超出范围会认为是一个未定义行为可能导致程序崩溃/得到一个不合法数据/得到一个看起来合法但是错误的数据/得到一个恰好符合要求的数据 优点效率最高 缺点程序员不一定能第一时间发现问题 而在redis当中尽可能的获取到给定区间的元素如果给定区间非法比如超出下标那么就会尽可能获取对应的内容 LPOP 从list左侧取出元素即头删 语法LPOP key返回值取出的元素或者nil 时间复杂度O(1) RPOP 从list右侧取出元素即尾删 语法RPOP key 返回值取出的元素或者nil 时间复杂度O(1) LINDEX 获取从左数第index位置的元素 语法LINDEX key index返回值取出的元素如果下标非法那么返回nil 时间复杂度O(N) LREM 指定删除list当中的元素 语法LREM key count value #count要删除的个数 element要删除的值根据count的值不同决定怎么删除 c o u n t 0 count 0 count0从前往后删除count个值为element元素 c o u n t 0 count 0 count0从后往前删除count个值为element元素 c o u n t 0 count 0 count0删除所有值为element的元素 区分获取和删除元素的区别 lindex能获取元素的值lrem也能获取被删除元素的值 LINSERT 在特定位置插⼊元素 语法LINSERT key BEFORE | AFTER pivot element 返回值插⼊后的list⻓度 时间复杂度O(N) before在element前面插入after在element后面插入 注意如果要插入的列表当中存在多个基准值此时会根据基准值找到对应的位置 从左往右找找到第一个符合基准值的位置然后对应的在它前面/后面插入元素 LTRIM 只保存 [ s t a r t , s t o p ] [start,stop] [start,stop]之间的元素区间之外的两边元素被删除 语法LTRIM key start stop LSET 根据下标修改元素下标从0开始可以是负数。 语法LSET key index element注意如果index下标越界那么会报错 LLEN 获取list⻓度 语法LLEN key 返回值list的⻓度 时间复杂度O(1) 阻塞版本命令 blpop和brpop是lpop和rpop的阻塞版本和对应⾮阻塞版本的作⽤基本⼀致不同之处如下 在列表中有元素的情况下阻塞和⾮阻塞表现是⼀致的。但如果列表中没有元素⾮阻塞版本会理解返回nil但阻塞版本会根据timeout阻塞⼀段时间期间Redis可以执⾏其他命令但要求执⾏该命令的客⼾端会表现为阻塞状态命令中如果设置了多个键那么会从左向右进⾏遍历键⼀旦有⼀个键对应的列表中可以弹出元素命令⽴即返回如果多个客⼾端同时多⼀个键执⾏pop则最先执⾏命令的客⼾端会得到弹出的元素 BLPOP 语法BLPOP key [key ...] timeout 返回值取出的元素或者超时返回nil 时间复杂度O(1) 返回的结果是一个二元组告诉我们当前数据来自哪个key告诉我们取到的数据是什么 BRPOP 语法BRPOP key [key ...] timeout 返回值取出的元素或者nil 时间复杂度O(1) 注意blpop和brpop都可以同时去尝试获取多个key的列表的元素如果等待的其中一个list当中有元素那么立马取出元素返回不会阻塞 如果多个客户端同时对一个键执行pop那么最先执行命令的客户端会得到弹出的元素 命令总结 内部编码 列表类型的内部编码有3种 ziplist压缩列表当列表的元素个数⼩于list-max-ziplist-entries配置默认512个同时列表中每个元素的⻓度都⼩于list-max-ziplist-value配置默认64字节时Redis会选⽤ziplist来作为列表的内部编码实现来减少内存消耗将数据按照更紧凑的压缩形式进行表示但是当元素个数多了操作起来效率会降低linkedlist链表当列表类型⽆法满⾜ziplist的条件时Redis会使⽤linkedlist作为列表的内部实现 quicklist相当于是链表和压缩列表的结合整体还是一个链表但是链表的每个节点是一个压缩列表每个压缩列表都不让它太大同时把多个压缩列表通过链式结构连接起来 测试内部编码 1当元素个数较少且没有⼤元素时内部编码为ziplist 2当元素个数超过512时内部编码为linkedlist 3当某个元素的⻓度超过64字节时内部编码为linkedlist 使用场景 消息队列 Redis可以使⽤lpushbrpop命令组合实现经典的阻塞式⽣产者-消费者模型队列⽣产者客⼾端使⽤lpush从列表左侧插⼊元素多个消费者客⼾端使⽤brpop命令阻塞式地从队列中争抢队⾸元素。通过多个客⼾端来保证消费的负载均衡和⾼可⽤性 brpop阻塞操作当列表为空的时候会阻塞等待直到其它客户端push了元素谁先执行这个brpop命令谁就可以拿到这个新来的元素可以构成一个轮询式获得元素的效果。每个获取到元素的消费者都需要重新执行brpop 分频道的消息队列 Redis使⽤lpushbrpop命令通过不同的键模拟频道的概念不同的消费者可以通过brpop不同的键值实现订阅不同频道的理念 比如一个通道用于传输短视频数据一个通道用于传输弹幕一个通道用于传输点赞转发收藏数据一个通道用于传输评论数据 搞成多个频道就可以在某种数据发生问题的时候不会对其他数据造成影响解耦合 模拟栈和队列 同侧存取lpushlpop或者rpushrpop为栈 异侧存取lpushrpop或者rpushlpop为队列
http://www.pierceye.com/news/241108/

相关文章:

  • mvc5网站开发之六 管理员p2网站模板
  • 黄页网站推广公司网站建设公司包括哪些内容
  • 网站平台建设目标修改网站j广州网络公司
  • 网站制作商城正规免费发布信息网站
  • 建设企业网站的人员组成莱芜网站建设费用
  • 长春建站网站西宁做网站君博专注
  • 学校实验室网站建设现状怎么做网站 ppt
  • 网站建设骗子公司新开传奇网站发布网
  • 智能模板网站建设方案深圳团购网站设计
  • 网站建设和网页设计用wordpress做网站页面显示404
  • 网站首页百度收录怎么做做装修公司网站
  • 湛江网站排名提升免费网站空间有什么用
  • 装修公司网站 源码绍兴市交通建设检测中心网站
  • 企业建设网站流程图珠海网站建设 旭洁
  • 企业商城网站开发互联网行业公司
  • 中国建设人才服务信息网是正规网站wordpress文章分享
  • 渭南网站建设公司电话央美老师做的家具网站
  • 机械网站建设栏目内容怎么欣赏一个网站设计图
  • 帝国cms 网站搬家wordpress 购物 插件下载
  • 怎么做ppt教程网站手机能访问asp网站
  • 电子商务网站建设与管理教材评价织梦网站地图调用全站文章
  • 020网站开发多少钱汕尾建设网站首页
  • 桓台县建设局网站做弹幕网站有哪些
  • 淘宝客导购网站源码iis默认网站属性
  • 做网站用矢量图还是位图安徽省住房和建设厅网站
  • 彭阳网站建设多少钱嘉兴专业的嘉兴专业网站建设项目
  • 网站建设导航分哪几类公司网站大全
  • 网站建设 实训题安能建设总公司网站打不开
  • 莱西网站建设龙岗中心城有学网站建设
  • 重庆技术网站建设宝安做网站哪家好