redis消息队列

Redis面试总结

做~自己de王妃 提交于 2020-03-03 02:40:15
1、什么是Redis? 是非关系型数据库,分布式缓存,用来存session,性能高,速度快,key-value形式存储 2、支持的数据类型 key-value、String、set、list、hash、zset 3、应用场景 缓存 需要实时变化和展示的功能,用redis操作 消息队列 4、 来源: CSDN 作者: ren_luxia 链接: https://blog.csdn.net/ren_luxia/article/details/104613723

redis实现有序的消息队列

旧城冷巷雨未停 提交于 2020-01-10 09:07:48
redis是什么东西就不多说了,网上文章一搜一大堆。 首先来说一下我要实现的功能: 类似一个消息中转站吧,如果有人要发送消息,先将消息发到我这里来,然后我这边进行转发,为的就是有一个统一的管理和修改时方便, 而且所有的消息有优先级,也会有定时发送(如果同一时间消息过多,则会有延迟) 思路: 首先一个是将这两个分为两个队列来实现, 一个用来实现消息优先级,一个来实现定时发送 用的是redis的有序集合,用zadd添加时,将score比做是优先级,也可以用时间戳来当做score,用来表示时间 PHP 版本简易实现 将消息加入优先级的队列,将1,2替换为时间就是定时发送的队列了 1 $redis = new Redis(); 2 $redis->connect('127.0.0.1', 6379); 3 $redis->zAdd('zset1', 1, 'message'); 4 $redis->zAdd('zset1', 2, 'message2'); 从队列中取出数据 1 $redis->zRevRangeByScore('zset1, '+inf', '-inf', array('withscores'=>false, 'limit'=>array(0,20))); 这条语句表示从zset1这个队列里按照score从最大(+inf)到最小(-inf)的排序中取出20条

Celery详解(1)

妖精的绣舞 提交于 2019-12-19 12:51:20
在学习Celery之前,我先简单的去了解了一下什么是生产者消费者模式。 生产者消费者模式 在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。 单单抽象出生产者和消费者,还够不上是生产者消费者模式。该模式还需要有一个缓冲区处于生产者和消费者之间,作为一个中介。生产者把数据放入缓冲区,而消费者从缓冲区取出数据,如下图所示: 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过消息队列(缓冲区)来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给消息队列,消费者不找生产者要数据,而是直接从消息队列里取,消息队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。这个消息队列就是用来给生产者和消费者解耦的。------------->这里又有一个问题,什么叫做解耦? 解耦 :假设生产者和消费者分别是两个类。如果让生产者直接调用消费者的某个方法,那么生产者对于消费者就会产生依赖(也就是耦合)。将来如果消费者的代码发生变化,可能会影响到生产者。而如果两者都依赖于某个缓冲区,两者之间不直接依赖,耦合也就相应降低了。生产者直接调用消费者的某个方法,还有另一个弊端

1024秋招结束

对着背影说爱祢 提交于 2019-12-02 04:59:23
文章目录 秋招基本技术了,回归学校,希望论文能顺利完成,顺利毕业。 回顾秋招,还是有很多问题,跟多基础知识不扎实,在这里做一下总结。 操作系统,比较薄弱,基本相关的问题都没答上来 计算机网络,同上,暂时只知道三次握手四次挥手 数据结构,还是要通篇复习下,如哈希表的问题就没答上来 java基础,差的还很多,简单的如Integer和int的比较问题,装箱拆箱问题 数据库,基本的索引问题,最差的是写sql 框架,差的非常多,spring各种原理,这还是避开了mybatis等问题 分布式的问题,springcloud和dubbo的各种组件及原理 缓存,redis要定期回顾 消息队列,了解常用的消息队列及作用 来源: https://blog.csdn.net/qq_24095055/article/details/102718288