大厂最新Redis面试题整理。你会几道?

Redis 面试题

    Redis Cluster着眼于扩展性,在单个redis内存不足时,使用Cluster进行分片存储。面试

如何使用过Redis作异步队列?

    通常使用list结构做为队列,rpush生产消息,lpop消费消息。当lpop没有消息的时候,要适当sleep一会再重试。redis

    若是不用sleep,list还有个指令叫blpop,在没有消息的时候,它会阻塞住直到消息到来。缓存

    若是想要生产一次消费屡次,能够使用pub/sub主题订阅者模式,能够实现1:N的消息队列,但在消费者下线后,生产的消息会丢失,想要持久化的话,须要使用消息队列如rabbitmq等。服务器

redis如何实现延时队列?

    使用sortedset,拿时间戳做为score,消息内容做为key调用zadd来生产消息,消费者用zrangebyscore指令获取N秒以前的数据轮询进行处理。网络

若是有大量的key须要设置同一时间过时,须要注意什么?

    若是大量的key过时时间设置的过于集中,到过时的那个时间点,redis可能会出现短暂的卡顿现象。通常须要在过时时间上加一个随机值,使得过时时间分散一些。架构

Redis单点吞吐量

    单点TPS达到8万/秒,QPS达到10万/秒,补充下TPS和QPS的概念异步

  1. QPS: 应用系统每秒钟最大能接受的用户访问量。每秒钟处理完请求的次数,注意这里是处理完,具体是指发出请求到服务器处理完成功返回结果。能够理解在server中有个counter,每处理一个请求加1,1秒后counter=QPS。
  2. TPS: 每秒钟最大能处理的请求数。每秒钟处理完的事务次数,一个应用系统1s能完成多少事务处理,一个事务在分布式处理中,可能会对应多个请求,对于衡量单个接口服务的处理能力,用QPS比较合理。

Redis哈希槽

    Redis集群没有使用一致性hash,而是引入了哈希槽的概念,当须要在 Redis 集群中放置一个 key-value 时,根据 CRC16(key) mod 16384的值,决定将一个key放到哪一个桶中。分布式

Redis集群最大节点个数是多少?

    Redis集群预分好16384个桶(哈希槽)学习

Redis事务是什么?

    Redis事务能够一次执行多个命令,有如下特色:spa

  • 批量操做在发送 EXEC 命令前被放入队列缓存。
  • 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其他的命令依然被执行。
  • 在事务执行过程,其余客户端提交的命令请求不会插入到事务执行命令序列中。

    事务能够理解为一个打包的批量执行脚本,但批量指令并不是原子化的操做,中间某条指令的失败不会致使前面已作指令的回滚,也不会形成后续的指令不作。

最后注意:不少人在学Java高级过程当中不免会遇到各类问题解决不了。为此我建了个裙 783802103,里面不少架构师一块儿交流解答,没基础勿进哦!本文的文字及图片来源于网络加上本身的想法,仅供学习、交流使用,不具备任何商业用途,版权归原做者全部,若有问题请及时联系咱们以做处理

相关文章
相关标签/搜索