redis消息队列面试题
答:3)不提供关系型数据库对事物的处理 2、介绍下redis和mongodb:自行google。3、应用场景:redis:a.主要是做热点数据缓存。b.数据过期处理。c.消息队列等功能。d.计数,例如投票等。mongodb:mongodb的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座...
答:有两种方法:Redis自带的PUB/SUB机制,即发布-订阅模式。这种模式生产者(producer)和消费者(consumer)是1-M的关系,即一条消息会被多个消费者消费,当只有一个消费者时即可以看做一个1-1的消息队列,但这种方式并不适合题主的场景。首先,数据可靠性的无法保障,题主的数据最终需要落库,如果消息丢失...
答:1.Redis实现消息队列原理,常用的消息队列有RabbitMQ,ActiveMQ,个人觉得这种消息队列太大太重,本文介绍下基于Redis的轻量级消息队列服务。 一般来说,消息队列有两种模式,一种是发布者订阅模式,另外一种是生产者和消费者模式。Redis的消息队列,也是基于这2种原理的实现。 发布者和订阅者模式:发布者发...
答:如果有以下场景可以考虑使用Redis作为消息队列:a、如果你的需求是快产快消的即时消费场景,并且生产的消息立即被消费者消费掉 b、如果速度是你十分看重的,比如慢了一秒好几千万这种 c、如果允许出现消息丢失的场景 d、如果你不需要系统保存你发送过的消息,做到来无影去无踪 e、需要处理的数据量并不是那...
答:二、处理方案 A) 初步方案采用ganymed-ssh2(文件都存储在Linux服务器上) 来读文件,Redis来存储消息、多线程来提升处理能力。 B) 流程图:三、呈现问题 四、优化问题 最终流程图:1、 通过Redis做一个计数器 每读取一行记录数值,即使服务终止后,先从Redis读取这个数值 再通过cat指定行...
答:redis设计用来做缓存的,但是由于它自身的某种特性使得它可以用来做消息队列,它有几个阻塞式的API可以使用,正是这些阻塞式的API让其有能力做消息队列;另外,做消息队列的其他特性例如FIFO(先入先出)也很容易实现,只需要一个list对象从头取数据,从尾部塞数据即可;redis能做消息队列还得益于其list...
答:1)单一列表实现:队列正常的操作是 左进右出(lpush,rpop)为了先处理高优先级任务,在遇到高级别任务时,可以直接插队,直接放入队列头部(rpush),这样,从队列头部(右侧)获取任务时,取到的就是高优先级的任务(rpop),最简单,但实际应用比较局限。2)使用两个队列,一个普通队列,一个高级队列...
答:消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。redis RabbitMQ 可靠性 rabbitmq:具有消息...
答:6 分布式锁的方案,redis和zookeeper那个好,如果是集群部署,高并发情况下哪个性能更好。7 kafka了解么,了解哪些消息队列。8 想做业务还是研究。9 然后出了一道题,linux的访问权限是rwx格式的。使用一个类支持访问权限的增删改查,并且注意使用的数据格式以及方法效率,规范。给了一个多小时写题。耗时...
答:能保证数据个数的最大长度不小于 LENGTH 个,不需要每次调整Radix树,性能相对较好)阻塞式,获取最新1条的数据(阻塞单位:ms)根据Streams支持的命令,要使用Streams作为多消费队列,主要有以下几点:官网介绍 中文官网命令介绍 图解Redis数据结构,讲的比较好 知乎上基于Redis消息队列方案介绍 ...
网友评论:
和卓17194398433:
java面试中redis,mongodb类的,会问哪些问题,怎么回答 -
26188屈店
: 1、可能会问nosql和关系型数据库的区别: 优点:1)成本:nosql数据库简单易部署,基本都是开源软件,不需要像使用Oracle那样花费大量成本购买使用,相比关系型数据库价格便宜 2)查询速度:nosql数据库将数据存储于缓存之中,关系...
和卓17194398433:
redis怎么做消息队列 -
26188屈店
: redis只是提供一个高性能的、原子操作的分布式队列实现.具体的业务还是得需要你自己定制.你的需求实际上是一个变形的生产者-消费者实现.对于此类需求,主要是将请求和实际的处理过程解耦,一般都是采取异步的方式来通知请求方,这跟用不用redis其实没有多大的关系.一般的实现方法是你需 要将用户的请求封装成一个Task,然后将这个Task再push到redis队列,然后后端的worker.php完全可以多进程、多线程的并发处理 Task并将处理结果回调给请求方.这里唯一麻烦点的就是这个Task的设计,需要能够包含请求信息(请求内容,请求方标识等等).
和卓17194398433:
面试中关于redis的问题有哪些 -
26188屈店
: redis中的数据类型 redis集群方案 redis事务处理 redis与db的数据一致性
和卓17194398433:
面试题redis怎么和spring进行集成 -
26188屈店
: 1、引入jar包org.springframework.data spring-data-redis 1.6.1.RELEASE redis.clients jedis 2.7.3 2、配置bean 在application.xml加入如下配置其中配置文件redis一些配置数据redis.properties如下: #redis中心 redis.host=10.75.202.11 ...
和卓17194398433:
第一次用Redis做消息队列,求解答 -
26188屈店
: 用的是订阅模式还是点对点,一般redis不建议使用前者.参考:https://davidmarquis.wordpress.com/2013/01/03/reliable-delivery-message-queues-with-redis/
和卓17194398433:
CAP原则的与BASE的关系 -
26188屈店
: BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案. 目前最快的KV数据库,10W次/S, 满足了高可用性. Redis的k-v上的v可以是普通的值(基本操作:get/set/del) v可以是数值(除了基本操作之外还...
和卓17194398433:
redis的消息队列和缓存的区别 -
26188屈店
: redis 消息推送(基于分布式 pub/sub)多用于实时性较高的消息推送,并不保证可靠. 其他的mq和kafka保证可靠但有一些延迟(非实时系统没有保证延迟). redis-pub/sub断电就清空,而使用redis-list作为消息推送虽然有持久化,但是又太弱智,也并非完全可靠不会丢.
和卓17194398433:
如何使用Redis 做队列操作 -
26188屈店
: 现在的项目,都是部署在多个服务器,或者多个IP上,而且前台经由F5分发,所以用户的请求究竟落在那一台的服务器上,是无法确定的.对于项目中,有一秒杀设计,刚开始没有考虑到这种部署,同时也是使用最容易处理的方式,直接给数据...
和卓17194398433:
redis消息队列怎样处理失败状态 -
26188屈店
: 1. redis中保存的是数组(序列化),绝对不要保存SQL,保存SQL的方法很蛋疼 保存数组是为了数据库安全(万一sql语句有错误,任务就直接失败了),灵活度和兼容性2. 服务器后台作一个shell脚本,死循环,不断从队列中取数据,进行处理.如次反复,如果没有数据,也立即尝试取数据---不要担心性能问题,后台单并发请求,不会造成性能问题3. 因为队列中保存的是数组,不存在这个问题
和卓17194398433:
redis如何同时取出队列中的多条数据 -
26188屈店
: public void test2Trans() { long start = System.currentTimeMillis(); Transaction tx = jedis.multi(); try{ for (int i = 0; i < 100000; i++) { tx.set("t" + i, "t" + i); } }catch(Exception e){ tx.discard(); } List results = tx.exec(); long end = System....