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

金融培训网站源码网站查询平台

金融培训网站源码,网站查询平台,网站建设捌金手指下拉十四,昆明建设银行社会招聘网站目录 List列表常用命令lpushlpushxrpushrpushlrangelpoprpoplindexlinsertllenlremltrim key start stoplset 阻塞版本命令blpopbrpop list的编码方式list的应用 List列表 Redis中的list相当于数组,或者 顺序表,一些常用的操作可以通过下面这张图来理解…

目录

      • List列表
        • 常用命令
          • lpush
          • lpushx
          • rpush
          • rpush
          • lrange
          • lpop
          • rpop
          • lindex
          • linsert
          • llen
          • lrem
          • ltrim key start stop
          • lset
        • 阻塞版本命令
          • blpop
          • brpop
        • list的编码方式
        • list的应用

List列表

Redis中的list相当于数组,或者 顺序表,一些常用的操作可以通过下面这张图来理解

在这里插入图片描述

实际上,这个并不是一个简单的数组,而是类似于一个“双端队列”

在这里插入图片描述

列表类型的特点:

  1. 列表中的元素是有序的,这意味着可以通过索引下标获取某个元素或者某个范围的元素列表,例如要上图的第 5 个元素,可以执行 lindex user:1:messages 4 或者倒数第 1 个元素,lindexuser:1:messages -1 就可以得到元素 e
  2. 区分获取和删除的区别,例如图 2-20 中的 lrem 1 b 是从列表中把从左数遇到的前 1 个 b 元素删除,这个操作会导致列表的长度从 5 变成 4;但是执⾏ lindex 4 只会获取元素,但列表长度是不会变化的
  3. 列表中的元素是允许重复的,如下图

在这里插入图片描述

常用命令
lpush
LPUSH key element [element ...]//将⼀个或者多个元素从左侧放⼊(头插)到 list 中
//时间复杂度:只插⼊⼀个元素为 O(1), 插⼊多个元素为 O(N), N 为插⼊元素个数
//返回值:插⼊后 list 的⻓度
lpushx
 LPUSHX key element [element ...]//在 key 存在时,将⼀个或者多个元素从左侧放⼊(头插)到 list 中。不存在,直接返回
//时间复杂度:只插⼊⼀个元素为 O(1), 插⼊多个元素为 O(N), N 为插⼊元素个数
//返回值:插⼊后 list 的⻓度
rpush
RPUSH key element [element ...]//将⼀个或者多个元素从右侧放⼊(尾插)到 list 中
//时间复杂度:只插⼊⼀个元素为 O(1), 插⼊多个元素为 O(N), N 为插⼊元素个数
//返回值:插⼊后 list 的⻓度
rpush
RPUSHX key element [element ...]//在 key 存在时,将⼀个或者多个元素从右侧放⼊(尾插)到 list 中
//时间复杂度:只插⼊⼀个元素为 O(1), 插⼊多个元素为 O(N), N 为插⼊元素个数
//返回值:插⼊后 list 的⻓度
lrange
 LRANGE key start stop//获取从 start 到 end 区间的所有元素,左闭右闭,下标支持负数
//时间复杂度:O(N)
//返回值:指定区间的元素,如果给定区间非法,比如超出下标,Redis中会尽可能的获取区间的内容
lpop
LPOP key [count](redis 6.2版本及其以上支持这个count,一次pop多个)//从 list 左侧取出元素(即头删)
//时间复杂度:O(1)
//返回值:取出的元素或者 nil
rpop
RPOP key [count](redis 6.2版本及其以上支持这个count,一次pop多个)//从 list 右侧取出元素(即尾删)
//时间复杂度:O(1)
//返回值:取出的元素或者 nil
lindex
LINDEX key index//获取从左数第 index 位置的元素
//时间复杂度:O(N)
//返回值:取出的元素或者 nil
linsert
LINSERT key <BEFORE | AFTER> pivot element//在特定位置插⼊元素 , before和after选一个,在privot之前插入,或者之后插入,这个pivot是元素的值,不是下标
//时间复杂度:O(N)
//返回值:插⼊后的 list ⻓度
llen
LLEN key//获取 list ⻓度
//时间复杂度:O(1)
//返回值:list 的⻓度
lrem
LREM key count element//指定一个元素精准删除//count为要删除的个数,element为要删除的值
//count>0,从左往右删除element两次
//count<0,从右往左删除element两次
//count=0,删除所有的element
ltrim key start stop
LTRIM key start stop//保留start和stop之间的元素(区间外两边的元素就直接被删除了)
//时间复杂度O(n)
lset
LSET key index element//根据下标修改元素
//时间复杂度O(n)
阻塞版本命令

blpop 和 brpop 是 lpop 和 rpop 的阻塞版本,和对应非阻塞版本的作用基本⼀致,除了:

  • 在列表中有元素的情况下,阻塞和非阻塞表现是⼀致的。但如果列表中没有元素,非阻塞版本会理解返回 nil,但阻塞版本会根据 timeout,阻塞⼀段时间,期间 Redis 可以执行其他命令,但要求执行该命令的客户端会表现为阻塞状态
  • 命令中如果设置了多个键,那么会从左向右进⾏遍历键,⼀旦有⼀个键对应的列表中可以弹出元素,命令立即返回
  • 如果多个客⼾端同时多⼀个键执⾏ pop,则最先执⾏命令的客⼾端会得到弹出的元素

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

blpop和brpop都是可以同时去尝试多个key的列表的元素的,多个key对应多个list,这多个list哪个有元素了,就会返哪个元素

blpop
BLPOP key [key ...] timeout//LPOP 的阻塞版本
//时间复杂度:O(1)
//返回值:取出的元素或者 nil
brpop
BRPOP key [key ...] timeout//RPOP 的阻塞版本
//时间复杂度:O(1)
//返回值:取出的元素或者 nil
list的编码方式

列表类型的内部编码有两种:

  1. ziplist(压缩列表):当列表的元素个数小于 list-max-ziplist-entries 配置(默认 512 个),同时列表中每个元素的长度都小于 list-max-ziplist-value 配置(默认 64 字节)时,Redis 会选用 ziplist 来作为列表的内部编码实现来减少内存消耗。。
  2. linkedlist(链表):当列表类型无法满足 ziplist 的条件时,Redis 会使⽤ linkedlist 作为列表的内 部实现。
list的应用

消息队列

**微博 Timeline

http://www.hkea.cn/news/714593/

相关文章:

  • 专门做酒店的网站百度排行
  • 上海做手机网站建设盐城网站优化
  • html论坛模板东营seo整站优化
  • 天津网站建设582345网址导航桌面版
  • 东莞纸箱厂东莞网站建设经典模板网站建设
  • 贺州同城购物网站建设中国网站排名100
  • 黄骅港旅游景点爱站网seo工具包
  • 网站 图文混编提高网站搜索排名
  • 北京怀柔网站制作教育机构
  • 网站建设费 大创友链交换平台
  • o2o商城网站系统开发微信群拉人的营销方法
  • 帝国cms做淘宝客网站网页设计用什么软件
  • 营销型网站建设的优缺点视频优化软件
  • 珠海响应式网站建设推广公司网络营销发展方案策划书
  • 中国人自己的空间站每日英语新闻
  • 教师可以做网站吗seo常用工具包括
  • 武山建设局网站什么是seo
  • 做文案需要用到的网站全网模板建站系统
  • 苏州乡村旅游网站建设策划书网站建设百度推广
  • 12380网站建设情况总结百度浏览器入口
  • 直播网站开发要多久排行榜前十名
  • 网站备案完才能建站吗企业建站公司
  • 网站开发外包合同西安网站优化公司
  • 2022网页设计尺寸规范和要求怎么做seo关键词优化
  • 北京大学两学一做网站十大收益最好的自媒体平台
  • 网站开发服务费企业网站建设的一般要素
  • 台州企业网站制作公司郴州网站推广
  • 如何做移动端网站邮件营销
  • 网站制作佛山crm管理系统
  • 网站综合营销方案设计网页设计教程