月牙湾,坑人很多的Redis面试题,帝少的心尖宠

5G、AI、人工智能 admin 2019-04-11 321 次浏览 0个评论
网站分享代码
坑人许多的Redis面试题



Redis有哪些数据结构?

字符串String、字典Hash、月牙湾,坑人许多的Redis面试题,帝少的心尖宠列表List、调集Set、有序调集SortedSet。

假设你是Redis中高级用户,还需求加上下月牙湾,坑人许多的Redis面试题,帝少的心尖宠面几种数据结构HyperLogLog、Geo、Pub/Sub。

假设你说还玩过Redis Module,像BloomFilter,RedisSearch,Redis-ML,面试官得眼睛就开端发亮了。

运用过Redis分布式锁么,它是什么回事

先拿setnx来争抢锁,抢到之后,再用expire给锁加一个过期时刻避免锁忘记了开释。

这时分对方会告诉你说你答复得不错,然后接着问假设在setnx之后履行expire之前进程意外crash或许要重启保护了,那会怎样样?

这时分你要给予惊奇的反应:唉,是喔,这个锁就永久得不到开释了。紧接着你需求抓一抓自己得脑袋,故作考虑顷刻,如同接下来的成果是你主动考虑出来的,然后答复:我记住set指令有十分jyp杂乱的参数,这个应该是能够一起把setnx和expire组成一条指月牙湾,坑人许多的Redis面试题,帝少的心尖宠令来用的!对方这时会暴露笑脸,心里开端默念:摁,这小子还不错。

假设Redis里边有1亿个key,其中有10w个key是以某个固定的已知的前缀最初的,假设将它们悉数找出来苍月女战士?

运用keys指令能够扫出指定形式的key列表。

对方接着诘问:假设这个redis正在给线上的事务供给效劳,那运用keys指令会有什么问题?

这个时分你要答复redis要害的一个特性:redis的单线程的。keys指令会导致线程堵塞一段时刻,线上效劳会中止,直到指令履行结束,效劳才干康复。这个时分能够运用scan指令,scan指令能够月牙湾,坑人许多的Redis面试题,帝少的心尖宠无堵塞的提取出指定形式的key列表,可是会有必定的重复概率,在客户端做一次去重就能够了,可是全体所花费的时刻会比直接用keys指令长。

运用过Redis做异步行列么,你是怎样用的?

一般运用list结祖艾妈构作为行列,rpush出产音讯,l空条承太郎pop消费音讯。当lpop没有音讯的时分,要恰当sleep一会再重试。

假设对方诘问可不能够不必sleep呢?list还有个指令叫blpop,在没有音讯的时分,它会堵塞住直到音讯到来。

假设对方诘问能不能出产一次消费屡次呢?懿怎样读运用pub/sub主题订阅者形式,能够完成1:N的音讯行列。

假设对方诘问pub/sub有什么缺陷?在顾客下线的情况下,出产的音讯会丢掉,得运用专业的音讯行列如rabbitmq等。

假设对方诘问redis怎样完成延时行列?我估量现在你很想把面试官一棒打死假设你手上有一根棒球棍的话钱嘉乐,怎样爱情公寓第一季问的这么具体。可是你很抑制,然后神态自若的答复道:运用sortedset,拿时刻戳作为score,音讯内容作为key调用zadd来出产音讯,顾客用zrangebyscore指令获取N秒之前的数据轮月牙湾,坑人许多的Redis面试题,帝少的心尖宠询进行处理。

到这儿,面试官暗地里现已对你竖起了大拇指。可是他不知道的是此时你却竖起了超级学生黄雨晨中day指,在椅子背面。

假设有许多的key需求设置同一时刻过期,一般需求留意什么?

假设许多的ke铃口y过期时刻设置的过于会集,到过期的那个时刻点,redis可能会呈现时刻短的卡顿现象。一般需求在时刻上加一个随机值,使得过期时刻涣散一些。

Redis怎样做耐久化的?

bgsave做镜像全量耐久化,aof做增量耐久化。由于bgsave桂会消耗较长时刻,925银是什么意思不行实时,在停机的时分会导致许多丢掉数据,所以需求aof来合作运用。在redis实例重启时,会运用bgsave耐久化文件从头构建内存,再运用aof重放近期的操作指令体彩七位数开奖成果来完成完好康复重启之前的状况。

对方诘问那假设忽然机器掉电会怎样?取决于aof日志sync特点的装备,假设不要求功能,在每条写指令时都sync一下磁盘,就不会丢掉数据。月牙湾,坑人许多的Redis面试题,帝少的心尖宠可是在高功能的要求下每次都inventorysync是不现实的,一般都运用守时sync,比方1s1次,这个时分最多就会丢掉1s的数据。

对方诘问bgsave的原理是什么?你给出两个词汇就能够了,fork和cow。fork是指redis经过创立子进程来进行bgsave操作,cow指的是copy on write,子进程创立后,父子进程同享数据段,父进程持续sup供给读写效劳,写脏深圳公交查询的页面数据会逐步和子进程别离开来。

Pipeline有什么优点,为什么要用pipeline?

能够将屡次IO往复的时刻缩减为一次,条件是pipeline履行的指令之间没有因果相关性。运用redis-benc月牙湾,坑人许多的Redis面试题,帝少的心尖宠hmark进行压测的时分能够发现影响redis的QPS拼多多商城峰值的一个重要因素是pipeline批次指令的数目

Redis的同步机制了解么?

Redis能够运用主从同步,从从同步。第一次同步时0755950509,主节点做一次bgsave,并一起将后续修正操作记载到内存buffer,待完成后将rdb文件全量同步到仿制节点,仿制节点承受完成后将rdb镜像加载到内存。加载完成后,再告诉主节点将期间修正的操作记载同步到仿制节点进行重放就完成了同步进程。

是否运用过Redis集群,集群的原理是什么?

Redis Sentinal着眼于高可用,在master宕机时会主动将slave提升为master,持续供给效劳。

Redis Cluster着眼于扩展性,在单个redis内存不足时,运用Clu容纳ster进行分片存储。