当前位置: 首页 > news >正文 如何做p2p网站最新外贸电商平台 news 2025/10/23 18:23:37 如何做p2p网站,最新外贸电商平台,企业网站建设的目的,我在wordpress目录 List 类型基本概念 List 类型特点 List 操作命令 LPUSH LPUSHX RPUSH RPUSHX LRANGE LPOP RPOP LINDEX LINSERT LREM LTRIM LSET 阻塞版本的命令 阻塞版本 和 非阻塞版本的区别 BLPOP BRPOP List 类型基本概念 Redis 中的列表#xff08;list BRPOP List 类型基本概念 Redis 中的列表list相当于 数组 或者 顺序表 列表 list约定最左侧的元素下标为 0且支持使用 负数下标 注意 list 内部的编码方式并非是一个简单的数组而是类似于 双端队列deque这种设计使得 list 两侧均能进行高效的插入删除且时间复杂度均为 O(1) List 类型特点 1、列表中的元素都是有序的 有序的含义 要根据上下文进行区分有的时候谈到有序指的是 升序 或 降序有的时候谈到有序指的是 顺序很关键此处列表中的元素都是有序的指的是 列表中的顺序很关键即把列表元素位置颠倒、顺序调换此时得到的 新 list 和 旧 list 是不等价的 注意 同一个词该如何理解需要结合上下文、结合具体场景 实例理解 栈/堆数据结构、操作系统、JVM同步同步和互斥 、 同步和异步 2、列表中的元素允许重复 Redis 中 hash 类型其 field 不能重复 小总结 Redis 的典型应用场景就是作为消息队列最早的时候就是通过 list 类型来实现的但后来 Redis 又提供了 stream 类型来专门针对消息队列 List 操作命令 LPUSH 将 一个 或 多个 元素从左放入到 list 中相当于头插lpush —— left push 语法 lpush key element [element ...] 时间复杂度 O(1) 返回值 插入后 list 的长度 实例理解 该列表中 元素 4 在最前面因为 lpush 相当于 头插 注意 如果当前 key 已存在且 key 对应的 value 类型不为 list则 lpush 命令将报错 LPUSHX 当 key 存在时将一个或多个元素从左侧放入 到 list 中相当于头插当 key 不存在时则直接返回 0 lpushx —— left push exists 语法 lpushx key element [element ...] 时间复杂度 O(1) 返回值 插入后 list 的长度 实例理解 RPUSH 将 一个 或 多个 元素从右侧放入到 list 中相当于尾插rpush —— right push 语法 rpush key element [element ...] 时间复杂度: O(1) 返回值 插入后 list 的长度 实例理解 该列表中 元素 1 在最前面因为 rpush 相当于 尾插 RPUSHX 当 key 存在时将一个或多个元素从右侧放入 到 list 中相当于尾插当 key 不存在时则直接返回 0rpushx —— right push exists 语法 rpush key element [element ...] 实例理解 LRANGE 用于查看 list 中指定范围的元素 语法 lrange key start stop 此处描述的区间为 闭区间且下标支持负数 时间复杂度 O(N) 实例理解 注意点一 此处的序号是专门给结果集使用的序号 和 list 下标无关 可以看到当我们进行 hash 操作时也会得到这种带有序号的结果集此处的序号仅仅是标识下标返回元素的顺序 和 下标无关hash 类型就没有下标的概念 注意点二 当使用 lrange 命令返回指定范围的元素时如果提供的下标超出了列表下标范围这时 lrange 命令会如何处理呢 答案 如果给定区间非法如超出下标lrange 命令将尽可能的获取到给定区间的元素不会报错 LPOP 从 list 左侧取出元素相当于 头删 语法 lpop key 时间复杂度 O(1) 返回值 取出的元素或者 nil 实例理解 RPOP 从 list 右侧取出元素相当于 尾删 语法 rpop key 时间复杂度 O(1) 返回值 取出的元素或者 nil 实例理解 注意 在当前 redis 5 版本中LPOP 和 RPOP 命令是没有 count 参数的但 redis 6.2 版本之后新增了 count 参数描述了一次要删 count 个元素 小总结 list 是一个双端队列即两头插入、删除元素均十分高效时间复杂度为 O1搭配使用 rpush 和 lpop 就相当于 队列搭配使用 rpush 和 rpop 就相当于 栈 LINDEX 用于获取从左数第 index 位置的元素 语法 lindex key index 时间复杂度 O(N)此处 N 指的是 list 中的元素个数 返回值 如果下标非法返回 nil 实例理解 LINSERT 用于在特定位置插入元素 语法 linsert key before | after pivot element 时间复杂度 O(N)此处的N表示列表的长度 返回值 插入后 新 list 的长度 实例理解 注意 万一要插入的列表中 基准值存在多个怎么办 回答 linsert 在进行插入时会根据基准值先找到其对应的位置寻找顺序为从左往右找到第一个符合基准值的位置打止 LREM 用来删除指定元素 语法 lrem key count element count 代表要删除的个数element 代表要删除的值 时间复杂度 O(NM)N 为列表的长度M 为要删除元素的个数此处 M 一般不会很大可视为O(N) 返回值 被移除的元素数量 实例理解 如果 count 0 相当于在列表中从左往右找 删除 count 个 element 如果 count 0 相当于在列表中从右往左找 删除 count 个 element 如果 count 0 相当于 删除列表中 所有的 element LTRIM 用于保留列表中 指定范围的元素移除范围外的元素 语法 ltrim key start stop 保留 [start stop] 区间的元素即区间外面两边的元素就直接被删除了 时间复杂度 O(N)N 为要删除元素的个数 返回值 命令执行成功则返回 OK 实例理解 LSET 用于根据下标修改对应元素 语法 lset key index element 时间复杂度 ON 返回值 命令执行成功则返回 OK 实例理解 注意 相较于 lindex 命令其能很好的处理下标越界问题如果下标越界则直接返回 nil但 lset 命令对于下标越界其会直接报错而不会像 JavaScript 语言动态地扩展列表 并在给定下标位置插入元素 阻塞版本的命令 阻塞当前的线程 不走了代码不继续执行了会在满足一定的条件之后被唤醒 blpop、brpop 这俩个命令是 lpop、rpop 俩个命令的阻塞版本 阻塞版本 和 非阻塞版本的区别 1、如果 list 中存在 元素blpop、brpop 命令和 lpop、rpop 命令作用完全相同但如果 list 中为空 blpop 和 brpop 便会产生阻塞一直阻塞到队列不为空为止 brpop 和 blpop 会根据设置的超时时间 timeout 进行阻塞等待即 执行该命令的 redis 客户端将会阻塞但在这期间 redis 服务器可以执行其他redis 客户端发来的命令 注意 使用 brpop、blpop 命令时需显式地设置阻塞时间虽然此处的 brpop 和 blpop 看起来好像耗时很久但 redis 服务器不会产生因此而产生任何负面影响 2、blpop、brpop 命令可设置多个键将根据设置的键从左向右进行遍历一旦有一个键对应的列表中可以弹出元素命令立即返回 3、如果多个客户端同时对一个键执行 pop 命令则最先执行命令的客户端将得到弹出元素 注意 无论 pop 命令是否为阻塞命令均满足第三条特性 实例理解 此处理解 blpop、brpop 命令和 lpop、rpop 命令 的区别 a、当列表不为空时 lpop user:1:messages 得到 x 元素blpop user:1:messages 得到 x 元素二者行为一致 b、当列表不为空时且五秒内无新元素加入 lpop user:1:messages 立即得到 nilblpop user:1:messages 5 执行命令 5 秒后得到 nil二者行为不一致 c、当列表不为空时且五秒内有新元素加入 lpop user:1:messages 立即得到 nilblpop user:1:messages 5 执行命令直到新元素加入得到新元素二者行为不一致 BLPOP BRPOP LPOP RPOP 的阻塞版本前缀 b —— block 阻塞 注意 redis 中的 list 也相当于 阻塞队列一样线程安全是通过单线程模型支持的阻塞则只支持 队列为空 的情况不考虑 队列满 语法 blpop key [key ...] timeoutbrpop key [key ...] timeout 重点理解 此处我们可以指定 一个 key 或 多个 key每个 key 都需对应为 list 类型如果这些 key 对应的 list 有任何一个非空blpop rlpop 命令便会按照指定 key 的顺序进行遍历直到有一个 key 对应的 list 非空就将该 list 头或尾 的元素给获取到并立即返回该元素给客户端如果这些 key 对应的 list 均为空此时就会根据设置的 timeout 超时时间进行阻塞等待等待其他客户端往这些 key 对应的 list 中插入元素进而获取到对应 key 的 list返回该 list 的 头 或 尾 元素给客户端 注意 此处的 超时时间 timeout单位为 秒Redis 6 版本之后允许超时时间设置成 小数但 Redis 5 版本中超时时间得为整数 时间复杂度 O(1) 实例理解 1针对一个 非空的列表进行操作 返回的结果相当于一个 二元组该返回结果 告诉我们当前元素来自于哪个 key 的同时也告诉了我们弹出的元素值是什么 2针对一个空的列表进行操作 3针对多个 key 进行操作 小总结 Redis 可使用 blpop brpop 命令 作为消息队列虽然这俩命令可以在一定程度上满足 消息队列 的需求但整体来说对于一些复杂的消息处理场景中这俩命令还是有一定的局限性 文章转载自: http://www.morning.cspwj.cn.gov.cn.cspwj.cn http://www.morning.rymb.cn.gov.cn.rymb.cn http://www.morning.jkftn.cn.gov.cn.jkftn.cn http://www.morning.btrfm.cn.gov.cn.btrfm.cn http://www.morning.mlwhd.cn.gov.cn.mlwhd.cn http://www.morning.nlkjq.cn.gov.cn.nlkjq.cn http://www.morning.pbmg.cn.gov.cn.pbmg.cn http://www.morning.htbbp.cn.gov.cn.htbbp.cn http://www.morning.dnbhd.cn.gov.cn.dnbhd.cn http://www.morning.dlwzm.cn.gov.cn.dlwzm.cn http://www.morning.wrlcy.cn.gov.cn.wrlcy.cn http://www.morning.ctbr.cn.gov.cn.ctbr.cn http://www.morning.crfjj.cn.gov.cn.crfjj.cn http://www.morning.pmnn.cn.gov.cn.pmnn.cn http://www.morning.rmjxp.cn.gov.cn.rmjxp.cn http://www.morning.jcwrb.cn.gov.cn.jcwrb.cn http://www.morning.nyqb.cn.gov.cn.nyqb.cn http://www.morning.gwzfj.cn.gov.cn.gwzfj.cn http://www.morning.wbqk.cn.gov.cn.wbqk.cn http://www.morning.rfwkn.cn.gov.cn.rfwkn.cn http://www.morning.rfhwc.cn.gov.cn.rfhwc.cn http://www.morning.qzpqp.cn.gov.cn.qzpqp.cn http://www.morning.wgzzj.cn.gov.cn.wgzzj.cn http://www.morning.jpwkn.cn.gov.cn.jpwkn.cn http://www.morning.kxrld.cn.gov.cn.kxrld.cn http://www.morning.wjtwn.cn.gov.cn.wjtwn.cn http://www.morning.jhrqn.cn.gov.cn.jhrqn.cn http://www.morning.hjbrd.cn.gov.cn.hjbrd.cn http://www.morning.ghjln.cn.gov.cn.ghjln.cn http://www.morning.qdxtj.cn.gov.cn.qdxtj.cn http://www.morning.cniedu.com.gov.cn.cniedu.com http://www.morning.mpgfk.cn.gov.cn.mpgfk.cn http://www.morning.wdlg.cn.gov.cn.wdlg.cn http://www.morning.ycpnm.cn.gov.cn.ycpnm.cn http://www.morning.lwhsp.cn.gov.cn.lwhsp.cn http://www.morning.lbywt.cn.gov.cn.lbywt.cn http://www.morning.tfbpz.cn.gov.cn.tfbpz.cn http://www.morning.qgfy.cn.gov.cn.qgfy.cn http://www.morning.xblrq.cn.gov.cn.xblrq.cn http://www.morning.ftync.cn.gov.cn.ftync.cn http://www.morning.taipinghl.cn.gov.cn.taipinghl.cn http://www.morning.bqwsz.cn.gov.cn.bqwsz.cn http://www.morning.sbrjj.cn.gov.cn.sbrjj.cn http://www.morning.cxsdl.cn.gov.cn.cxsdl.cn http://www.morning.paoers.com.gov.cn.paoers.com http://www.morning.rgtp.cn.gov.cn.rgtp.cn http://www.morning.fynkt.cn.gov.cn.fynkt.cn http://www.morning.qdmdp.cn.gov.cn.qdmdp.cn http://www.morning.swkpq.cn.gov.cn.swkpq.cn http://www.morning.rythy.cn.gov.cn.rythy.cn http://www.morning.knswz.cn.gov.cn.knswz.cn http://www.morning.drgmr.cn.gov.cn.drgmr.cn http://www.morning.lmpfk.cn.gov.cn.lmpfk.cn http://www.morning.mpnff.cn.gov.cn.mpnff.cn http://www.morning.mzhgf.cn.gov.cn.mzhgf.cn http://www.morning.tddrh.cn.gov.cn.tddrh.cn http://www.morning.tfsyk.cn.gov.cn.tfsyk.cn http://www.morning.znknj.cn.gov.cn.znknj.cn http://www.morning.ntgjm.cn.gov.cn.ntgjm.cn http://www.morning.dtmjn.cn.gov.cn.dtmjn.cn http://www.morning.xrqkm.cn.gov.cn.xrqkm.cn http://www.morning.hhmfp.cn.gov.cn.hhmfp.cn http://www.morning.pxmyw.cn.gov.cn.pxmyw.cn http://www.morning.xnfg.cn.gov.cn.xnfg.cn http://www.morning.rxlk.cn.gov.cn.rxlk.cn http://www.morning.xkgyh.cn.gov.cn.xkgyh.cn http://www.morning.rpjr.cn.gov.cn.rpjr.cn http://www.morning.xiaobaixinyong.cn.gov.cn.xiaobaixinyong.cn http://www.morning.wrlxt.cn.gov.cn.wrlxt.cn http://www.morning.kpzrf.cn.gov.cn.kpzrf.cn http://www.morning.jmlgk.cn.gov.cn.jmlgk.cn http://www.morning.gpfuxiu.cn.gov.cn.gpfuxiu.cn http://www.morning.qklff.cn.gov.cn.qklff.cn http://www.morning.tkzqw.cn.gov.cn.tkzqw.cn http://www.morning.nwmwp.cn.gov.cn.nwmwp.cn http://www.morning.lkrmp.cn.gov.cn.lkrmp.cn http://www.morning.wgrm.cn.gov.cn.wgrm.cn http://www.morning.qtsks.cn.gov.cn.qtsks.cn http://www.morning.pnmnl.cn.gov.cn.pnmnl.cn http://www.morning.rybr.cn.gov.cn.rybr.cn 查看全文 http://www.tj-hxxt.cn/news/243195.html 相关文章: 网站开发基础班内容有哪些小企业公司网站怎么建 东莞企业制作网站网站建设开发公司报价 免费 微网站公司网站推广怎么做 网页网站自做全搞定郑州做网站找赢博科技 网站加载不出来是什么原因如何不花钱建设网站 有了自己的域名怎么做网站海东市网站建设 浏览有关小城镇建设的网站6wordpress免费精品主题 保定网站制作计划动漫设计软件有哪些 做网站什么一级导航二级导航python做网站多么 网站建设长沙投百度做广告效果怎么样 京东网站网站建设是什么西双版纳傣族自治州地图高清版 网站引导页动态效果怎么做的关键词歌词 广西网站seo做微网站公司简介 网站服务器关闭怎么恢复聊天软件开发需要多少钱 网站建设需要什么语言服务器网站怎么做 怎样注册网站wordpress公司展示网站 校园网站建设情况通报大型门户网站程序 南京重庆网站建设广州网站推广 网站建设后如何检测网站建设系统服务 北京seo网站设计兰州网站设计厂家 成都电子商务网站建站北京3d效果图制作公司 海洋网络提供网站建设怎样做网站轮播 昆明门户网站宠物店网页设计素材 广告多的网站找专题页面那个网站好 如何在网站源码做授权西双版纳网站制作公司 企业网站 费用市场运营和市场营销的区别 网站和app的关系wordpress自动回复 成都 企业网站建设电商平面设计教程 郑州企业网站推广wordpress中的联系方式 落实网站建设培训班精神wordpress会员可见主题