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

洛阳网站建设优化aso安卓优化公司

洛阳网站建设优化,aso安卓优化公司,wordpress做静态网页,正规刷手机单做任务网站文章目录 LLENLREMLTRIMLSET阻塞版本命令BLPOP 和 BRPOP区别使用方式 命令小结内部编码 LLEN 获取 list 的长度 语法: LLEN key时间复杂度: O ( 1 ) O(1) O(1)返回值: list 长度 LREM 删除 count 个 key 中的元素 语法: LREM…

文章目录

  • LLEN
  • LREM
  • LTRIM
  • LSET
  • 阻塞版本命令
    • BLPOP 和 BRPOP
    • 区别
    • 使用方式
  • 命令小结
  • 内部编码

LLEN

获取 list 的长度


语法:

LLEN key
  • 时间复杂度: O ( 1 ) O(1) O(1)
  • 返回值: list 长度image.png

LREM

删除 countkey 中的元素


语法:

LREM key count element
  • 时间复杂度: O ( N + M ) O(N+M) O(N+M) N N Nlist 长度, M M M 是需要移除的元素个数
  • count > 0:要删除的元素从左往右找
  • count < 0:要删除的元素从右往左找
  • count = 0:删除所有的指定元素image.png|271

LTRIM

保留 startstop 之间区间内的元素,区间外元素就直接被删除了


语法:

LTRIM key start stop
  • 时间复杂度: O ( N ) O(N) O(N) N N N 是被删除的元素个数image.png|268

LSET

根据下标,修改元素


语法:

LSET key index element
  • 时间复杂度: O ( N ) O(N) O(N)image.png|315
  • LINDEX 可以很好的处理下标越界的情况,直接返回 nillist 则会报错image.png|376

阻塞版本命令

阻塞:当前的线程不走了,代码不继续执行了。会在满足一定的条件之后被唤醒

BLPOP 和 BRPOP

B ==> block(阻塞),阻塞队列(BlockingQueue

使用队列来作为中间的“交易场所”,期望这个队列有两个特性:

  1. 线程安全
  2. 阻塞
    1. 如果队列为空,尝试出队列,就会产生阻塞。直到队列不空,阻塞解除
    2. 如果队列为满,尝试入队列,也会产生阻塞。直到队列不满,阻塞解除

Redis 中的 list 也相当于阻塞队列一样,线程安全是通过单线程模型支持的。阻塞,则只支持“队列为空”的情况,不考虑“队列满”

  • 如果 list 中存在元素,那么 BLPOP/BRPOPLPOP/RPOP 作用完全相同。
  • 如果 list 中为空,那么 BLPOP/BRPOP 就会产生阻塞,一直阻塞到队列不空为止

区别

阻塞版本会根据 timeout,阻塞一段时间,期间 Redis 可执行其他命令

  • 使用 BLPOP/BRPOP 的时候,这里是可以显示设置阻塞时间的(不一定是无休止的等待)

命令中如果设置了多个键,那么会从左向右进行遍历键,一旦有一个键对应的列表中可以弹出元素,命令立即返回

  • BLPOP/BRPOP 都是可以同时去尝试获取多个 key 的列表的元素的
  • 多个 key 对应多个 list,这多个 list 哪个有元素了,就会返回哪个元素

如果多个客户端同时针对同一个 key 执行 POP,则最先执行命令的客户端会得到弹出的元素

使用方式

语法:

BLPOP key [key ...] timeout
  • 此处可以指定一个 key 或者多个 key,每个 key 都对应一个 list
    • 如果这些 list 有任何一个非空,BLPOP 都能够把这里的元素给获取到,立即返回
    • 如果这些 list 都为空,此时就要阻塞等待,等待其他客户端往这些 list 中插入元素
    • 此处还可以指定超时时间,单位是Redis 6,超时时间允许设为小数;Redis 5 中,超时时间得是整数)

  1. 针对一个非空的列表进行操作image.png
    • 返回的结果相当于一个 pair(二元组)
    • 一方面是告诉我们当前的数据来自于哪个 key
    • 一方面告诉我们取到的数据是啥

  1. 针对空的列表进行操作
    image.png

image.png|337

  • key 中没有元素的时候,一直阻塞。后来新开一个终端窗口,将 key 里面新加元素,阻塞就结束了,并显示了阻塞时间

  1. 针对多个 keyimage.png|378
  • 当四个 key 都是空的时候,就会阻塞住,但只要其中一个 key 有了元素,阻塞就会停止

当前这俩命令虽然可以一定程度的满足“消息队列”这样的需求,但整体来说,这俩功能还是比较有限

命令小结

image.png

内部编码

  • ziplist(压缩列表),把数据按照更紧凑的压缩形式进行表示,节省空间。当元素个数多了,操作起来效率会降低
  • 当元素个数多了之后,就会变成 linkedlist(链表)

quicklist 相当于是链表和压缩列表的结合,整体还是一个链表,链表的每个节点,是一个压缩列表

  • 每个压缩列表,都不让它太大,同时再把多个压缩列表通过链式结构连起来
http://www.dtcms.com/wzjs/136961.html

相关文章:

  • 淘宝网站怎么做链接地址运营网站是什么意思
  • wordpress marble谷歌seo是什么
  • 网站推广怎么写seo整站优化费用
  • 用数字做域名的网站手机百度一下
  • wordpress默认缩略图苏州seo关键词优化排名
  • 12123互联网服务平台seo网络营销外包
  • 南昌营销型网站网站维护费一年多少钱
  • 静态网页设计素材seo关键词推广话术
  • 学做网站有多难全网自媒体平台大全
  • 企业网站开发模板关键词优化排名
  • 手机支付网站开发网站流量统计系统
  • 南磨房做网站公司济南网络推广网络营销
  • php做网站开发有什么框架搜索引擎优化论文3000字
  • 呼家楼做网站的公司天津网络推广seo
  • 17网一起做网站广州唐山seo推广公司
  • 做网站全屏尺寸是多少关于手机的软文营销
  • 西部数码空间可以做会所网站吗百度地图关键词排名优化
  • 杭州手机网站制作公司哪家好广告代运营公司
  • 宁波专业网站建设模板服务公司网站首页设计
  • 做app找哪个网站吗seo优化是什么职业
  • 海淀网站建设公司引擎搜索器
  • 做学校和企业对接的网站长春网站制作推广
  • 档案信息网站开发利用深圳网络公司推广公司
  • 不干胶网站做最好的seo优化软件大全
  • 武汉有个人做网站的北京昨晚出什么大事
  • 个人网站备案 法律说明西安网是科技发展有限公司
  • wordpress 美丽说seo内容优化
  • 做外贸网站哪家的好网络优化工具
  • 孝感做招聘信息的网站荆门网站seo
  • 西安开发网站建设seo优化排名易下拉用法