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

工控主机做网站服务器室内设计学校网站

工控主机做网站服务器,室内设计学校网站,邢台免费发布信息,哈尔滨黑大主题邮局Redis#xff1a;list类型 list命令非阻塞LPUSHLRANGELPUSHXRPUSHRPUSHXLPOPRPOPLINDEXLINSERTLLENLREMLTRIMLSET 阻塞BLPOPBRPOP 内部编码ziplistlinkedlistquicklist 几乎每种语言都有顺序表、数组、链表这样的顺序结构#xff0c;Redis也做出了相应的支持。 如图#xff… Redislist类型 list命令非阻塞LPUSHLRANGELPUSHXRPUSHRPUSHXLPOPRPOPLINDEXLINSERTLLENLREMLTRIMLSET 阻塞BLPOPBRPOP 内部编码ziplistlinkedlistquicklist 几乎每种语言都有顺序表、数组、链表这样的顺序结构Redis也做出了相应的支持。 如图Redis的value值可以是一个列表list其支持头尾的插入删除下标访问等功能。也支持正负数下标正数下标从0开始负数下标从-1开始。 list命令 非阻塞 LPUSH 头插元素到list中如果key不存在就创建 lpush key element [element ...]返回list插入后的长度。如果一开始key不存在就创建一个key。 LRANGE 获取指定范围的list元素 lrange key start stop访问区间为[start, end]的闭区间支持负数下标。 示例 接下来通过lrange测试刚刚的lpush接口 由于lpush是头部插入所以按顺序插入1 2 3 4 5最后存储顺序为5 4 3 2 1。 如果在Redis中数组越界Redis不会报错而是尽可能输出范围内存在的数据。 第一次查询0 - 100但是list中只有0 - 4那么此时把0 - 4全部输出。第二次查询50 -60list内没用这部分数据但是它不报错而是输出empty表示空。 LPUSHX 当key存在头插元素到list中 lpushx key element [element ...]返回插入后list中元素的个数。 示例 第一次插入list1由于已经存在此时插入成功返回9表示当前有九个元素。第二次插入了一个不存在的list2但是它不存在返回0表示插入后一个元素也没有也就是插入失败。 RPUSH 尾插元素到list中如果key不存在就创建 rpush key element [element ...]返回插入后list元素个数。 示例 同样插入1 2 3 4 5顺序与之前lpush插入刚好是反着的因为rpush是尾插。 此处list有一个命名上的注意点 lpushleft push从左侧插入即头插rpushright push从右侧插入即尾插lrangelist range输出列表指定范围 同样是l开头有时候表示list有时候表示left这个要注意。 另外的 lpushxleft push exists存在时插入 此处的x是选用了exsis中的一个字母表示只有key存在才插入。 RPUSHX 当key存在尾插元素到list中 rpushx key element [element ...]返回插入后list中元素的个数。 LPOP 头删list元素 lpop key [count]返回被删除的头部count个元素如果list为空没有可以删的元素了返回nil。 示例 先创建一个1 2 3 4 5的列表第一次lpop不带任何参数只输出一个头部元素。第二次带参数4此时输出剩余的四个元素。最后一次lpop由于已经没有元素了返回nil。 RPOP 尾删list元素 rpop key [count]返回被删除的尾部count个元素如果list为空没有可以删的元素了返回nil。 LINDEX 获取指定下标的元素 lindex key index返回指定下标的元素支持负数下标。 示例 LINSERT 在指定位置插入元素 linsert key before|after pivot element在元素pivot的前面或者后面插入element元素。 示例 此处指令的作用是在元素c前面插入hello。 如果有多个pivot元素那么只在第一个元素的位置插入。 LLEN 获取list的长度 llen key返回list长度如果不存在则返回0。 LREM 删除元素 lrem key count element删除count个element元素。 此处count的取值有三种 count 0从左往右删除count 0从右往左删除count 0删除所有元素 示例 此处插入了1 2 3 hello循环四次删除3 hello即从左往右删除三个hello每次出只有最后一个hello被保留。 如果传入-3 hello此时从右往左删除只有第一个hello被保留。 LTRIM 指定范围内元素保留剩余的元素删除 ltrim key start stop只保留[start, stop]闭区间内部的元素其余的元素全部删除。 示例 LSET 修改指定下标的元素 lset key index element将下标为index的元素改为element支持负数下标。如果下标越界会返回一个报错。 示例 第一次修改将下标为3的元素修改为666。第二次插入操作下标为100的元素由于不存在报错了。 阻塞 先前的所有的命令都是非阻塞的直接操作就可以得到结果而list还提供了一些阻塞性质的命令。 在多线程中有一个生产消费模型其可以基于阻塞队列实现主要满足以下两个性质 如果阻塞队列满了那么生产者阻塞如果阻塞队列空了那么消费者阻塞 在Redis中list只考虑队列为空的情况也就是消费者。用户读取数据时队列为空那么用户陷入阻塞直到队列有数据。 BLPOP 读取并删除list头部元素如果没有元素则陷入阻塞 blpop key [key ...] timeoutblpop可以同时指定多个key也就是多个list只要任何一个list有数据就返回结果。还可以设置超时时间timeout以秒为单位如果超过时间了返回nil。 如果超时时间设置为0则一直阻塞不会超时。 另外的此处的阻塞不是Redis阻塞而是客户端阻塞。如果阻塞Redis将指令放到后台去等待自己去执行其他指令。 示例 此处list8有元素而list9为空返回了list8的元素。此时会同时返回两个内容list8表示该数据是从哪一个列表中拿到的3则是拿到的数据。 此处启用了两个客户端左侧客户端blpop一个空列表等待20s随后陷入阻塞。接着右侧客户端插入一个元素到list9随后左侧客户端立刻拿到数据并输出并且输出了自己的阻塞市场18.15s。 BRPOP 读取并删除list尾部元素如果没有元素则陷入阻塞 brpop key [key ...] timeout总结 操作类型命令添加rpush、lpush、insert查找lrange、lindex、llen删除lpop、rpop、lrem、ltrim修改lset阻塞blpop、brpop 内部编码 ziplist 压缩列表是一种内存紧凑的存储方式适合存储数量较少且元素较小的列表。具体来说当list类型的元素个数小于 list-max-ziplist-entries 默认 512 个并且所有值的长度都小于 list-max-ziplist-value 默认 64 字节时Redis 会使用 ziplist 作为列表的内部实现。 这些配置在/etc/redis/redis.conf内修改。 优点 内存节省 ziplist 使用连续的内存块来存储数据这种紧凑的存储方式可以有效地减少内存碎片和开销。结构简单适合小规模数据尤其是在内存资源有限的情况下。 缺点 操作效率随着数据量的增加ziplist 的读写效率会下降。尤其是在需要频繁更新的场景中ziplist 的线性查找特性使得操作复杂度较高。扩展性差不适合大规模数据存储。 linkedlist 当列表类型无法满足ziplist的条件时会使用linkedlist链表作为list的内部实现。这就是一个基本的双向链表。 优点 头尾的插入删除非常高效 缺点 中间部分的插入删除时间复杂度较高 quicklist linkedlist 与 ziplist 编码在 Redis 4.0 版本之后不再是默认的列表编码方式因为引入了更高效的 quicklist 编码它是基于压缩列表和双向链表的组合旨在结合两者的优点。 对于quicklist其外层列表依然是linkedlist双链表结构但是每一个链表节点都是一个quicklist对于中间部分的节点会进行一定程度的压缩提高效率。
http://www.dnsts.com.cn/news/148572.html

相关文章:

  • dtcms网站开发wordpress 网站加载过慢6
  • php企业网站后台管理系统顺企网是什么网站
  • 陕西省建设造价协会网站常州网站推广招聘
  • 网站设计分析报告系统繁忙是什么原因
  • 怎样自己制作网站长沙有实力seo优化
  • iis默认网站路径汽车零件销售网站开发
  • 东莞公司想建网站网站开发如何压缩图片
  • 网上书店网站建设建筑人才网官网入口
  • 国内优秀的设计网站推荐wordpress博客页面无法显示
  • 学校建设网站费用申请怎么才能做电商
  • 网站域名在哪里查询潍坊做网站哪个公司好
  • 买域名送网站空间浙江网站建设推广公司
  • 苏州门户网站建设电话福建省建设工程质量安全网站
  • 二手车网站模版售价wordpress表单留言
  • 移动端网站开发流程seo网络排名优化技巧
  • 建设电视台微信网站必要性ui需要学哪些内容
  • 福州培训网站建设南宁黄页电话号码查询
  • html5 网站案例制作京东一样的网站
  • 那个企业网站是用vue做的版式设计1000例
  • 网站建设创建做网页设计需要学什么
  • 松山湖网站建设公司免费微信网站模板下载
  • 寿光哪里做网站wordpress 网站标题设置方法
  • 做网站送白酒南宁求介绍seo软件
  • 做网站侵权吗广州市网站建站
  • 网站页面设计风格wordpress访问权限插件
  • 购物网站需求分析网站提交地址
  • seo网站架构设计自适应产品网站模板
  • 乐清网站制作优化品牌建设的目标
  • 性做爰网站win7如何建设免费网站
  • 电影网站如何建设会员式桐乡网站建设