使用Redis集合List实现消息队列

系列文章目录


文章目录

  • 系列文章目录
  • 前言


前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述


Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
在这里插入图片描述
之前,使用Redis的List做过一个浏览记录的功能 https://www.javacui.com/DB/679.html 。

在看到使用Redis做消息队列时,有人使用List来做队列,研究了一下,确实可以实现功能。它主要是通过 lpush、rpop 存入和读取实现消息队列的。
在这里插入图片描述
lpush 可以把最新的消息存储到消息队列(List 集合)的首部,而 rpop 可以读取消息队列的尾部,这样就实现了先进先出。
在这里插入图片描述
使用 List 实现消息队列的优点是消息可以被持久化,List 可以借助 Redis 本身的持久化功能,AOF 或者是 RDB 或混合持久化的方式,用于把数据保存至磁盘,这样当 Redis 重启之后,消息不会丢失。
但使用 List 同样存在一定的问题,比如消息不支持重复消费、没有按照主题订阅的功能、不支持消费消息确认等。

使用命令发布数据:

lpush List:Javacui 111
lpush List:Javacui 222

查看数据

在这里插入图片描述
消费数据

127.0.0.1:0>rpop List:Javacui
"111"
127.0.0.1:0>rpop List:Javacui
"222"
127.0.0.1:0>

编码实现,使用Jedis编码


                

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/507352.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL经验分享:Shell开发问题

背景 之前整理过Python连接使用MySQL的经验,链接如下: pymysql封装总结_pymysql封装类-CSDN博客 相比高级语言,Shell与MySQL开发使用相对会更麻烦一些;由于 shell是linux命令集的概称,是属于命令行的人机界面。Shel…

k8s 基础入门

1.namespace k8s中的namespace和docker中namespace是两码事,可以理解为k8s中的namespace是为了多租户,dockers中的namespace是为了网络、资源等隔离 2.deployment kubectl create #新建 kubectl aply #新建 更新 升级: 滚动升级&#x…

MS35774/MS35774A,低噪声 256 细分微步进电机驱动,可用在车灯随动,香氛机等领域

MS35774/MS35774A 是一款高精度、低噪声的两相步进 电机驱动芯片,芯片内置功率 MOSFET ,长时间工作的平均电 流可以达到 1.4A ,峰值电流 2A 。芯片集成了过温保护、欠压 保护、过流保护、短地保护、短电源保护功能。 主要特点 ◼ 2…

微信支付平台与微信服务号关联配置要点

目录 JSAPI支付 前期资料及相关准备 申请微信服务号 服务号配置要点 微信认证 基本配置 功能设置 申请微信支付号 支付号配置要点 设置操作密码 API安全 开发设置 与服务号关联 小结 JSAPI支付 我们的开发应用场景以JSAPI支付为举例,这也是常用的一…

微服务——Ribbon负载均衡

Ribbon负载均衡 1.负载均衡原理1)对LoadBalancerIntercepor进行源码跟踪:2)LoadBalancerClient继续跟入execute方法:3)负载均衡策略IRule4)总结 2.负载均衡策略自定义负载均衡策略 3.饥饿加载 在eureka中&a…

从零开始学大模型 | 你必须要知道的三种大模型架构可视化的方法!

引言 大模型架构可视化对于理解、解释和优化这些复杂模型具有重要意义和作用,主要包括以下两个方面: 提高模型透明度和可解释性通过可视化,我们能够直观地观察到模型内部的计算过程、参数分布、特征提取等,从而更好地理解模型是如…

【Node.js】-PostCSS简介

简介 PostCSS中文网地址 PostCSS是一个由JavaScript插件转换样式的工具,它的目标是探索CSS工具的新可能性,特别是在自动化和优化方面。它能够让你使用未来的CSS特性,同时优化现有的CSS代码,使其更加高效和兼容。 PostCSS本身并不…

【Dynamics 365 FO】导入汇率以及在X++代码中使用这些汇率

商务合作请加微信:DingtalkCSM 首先我们需要先创建一个汇率提供方,Dyanmics 365官方为我们提供了三个汇率提供方,直接点new然后选一个就好了。 建好汇率提供方之后我们就可以导入汇率了。 配置一下各项参数。 我们可以配置一个批处理&#x…

h5接入腾讯云人脸核身

一.自助接入步骤。 1.登录腾讯云开通人脸核身服务。 2.选择微信h5。 3.填写用户授权信息,选择对比源。 4.在调用实名核身鉴权接口时,必须传入认证人姓名和身份证号。 5.配置结果。 二.时序图 三.后端接口 service package com.ynfy.buss.exam.faceve…

PurpleKeep:提供Azure管道以创建基础设施并执行Atomic测试

关于PurpleKeep PurpleKeep是一款功能强大的安全测试自动化工具,该工具能够通过提供Azure管道以创建基础设施,并帮助广大研究人员执行Atomic测试。 随着攻击技术种类的迅速增加,以及EDR(端点检测和响应)和自定义检测规…

C语言----预处理(详解)

好了书接上回。我在讲编译与链接的时候写过宏和条件建议。我说会在下一篇博客中讲解,那么来了。今天我们来详细的讲讲预处理。宏与条件编译也在其中,那么我们现在就来好好会会这个预处理吧。 预定义符号 关于预定义符号,我暂时只知道几个。并…

Python-VBA编程500例-028(入门级)

经典二分查找算法(Classic Binary Search Algorithm)(也称为折半查找算法),是一种在有序数组中查找某一特定元素的搜索算法。它要求序列必须有序,然后通过每次比较数组中间元素与目标值,将搜索范围缩小一半,直到找到目标元素或搜索…

传输大咖20|提升效率:优化文件服务器删除大文件夹过程的策略

引文| 文件服务器在删除大文件夹时,往往会比较耗时。如果在原有线程中同步等待删除结果,那么会阻塞原有线程的运行;如果在其它线程中异步删除文件夹,则虽不阻塞原有线程的运行,但对于那些关注删除结果的用户…

每日面经分享(pytest装饰器)

pytest装饰器 a. pytest.mark.parametrize:这个装饰器用于标记测试函数,并为其提供多组参数进行参数化测试。可以使用元组、列表、字典等形式来指定参数组合。 import pytestpytest.mark.parametrize("num1, num2, expected", [(2, 2, 4), (5…

力扣热门算法题 217. 存在重复元素,223. 矩形面积,225. 用队列实现栈

217. 存在重复元素,223. 矩形面积,225. 用队列实现栈,每题做详细思路梳理,配套Python&Java双语代码, 2024.04.01 可通过leetcode所有测试用例。 目录 217. 存在重复元素 解题思路 完整代码 Java Python 223…

Discuz采集发布插件

Discuz(简称DZ)是一款知名的开源论坛系统,广泛应用于各类网站社区。对于许多站长来说,保持论坛内容的更新是一项挑战,特别是在内容量庞大的情况下。为了解决这个问题,有一类特殊的插件是用于在Discuz论坛中…

惟客数据《2024泛零售行业大会员经营实践与案例》正式发布

对于多业态、多品牌、多渠道经营的泛零售企业而言,如何改变过去会员经营过程中“各自为政”的状态? 如何让企业内不同业务之间的会员经营“瞄得准、看得穿、打得透、流得通、触得动”,充分发挥多业态、多品牌、多渠道优势,最大化挖…

transformers微调模型后使用pieline调用无法预测列表文本

初学transformers框架 使用trainer简单训练一个文本分类模型三个epoch后 使用piepline调用model 和tokenizer后 发现 传入列表文本后 输出就变得不正常了,为么子哇 如下图

简单说清楚什么是SQL Injection?

最近看完了《The Pragmatic Programmer: 20th Anniversary Edition, 2nd Edition: Your Journey to Mastery》,在第7章:While You Are Coding的footnotes中,提到了一幅漫画: 这不仅用简单的方式说清楚了什么是SQL Injection&#…

【御控物联】JSON结构数据转换在物联业务中应用(场景案例二)

文章目录 一、物联网业务场景现状二、物联网业务场景数据交互格式三、JSON格式数据转换案例四、JSON数据格式转换DEMO 一、物联网业务场景现状 目前,市场上多数物联网关与物联平台捆绑售卖,网关采集到设备数据只能按照指定的协议和规定的数据格式传输到…