redis面试题 redis分布式锁原理面试
今天给各位分享redis面试题的知识,其中也会对redis分布式锁原理面试进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
redis常见的面试问题都有哪些
其实,不管是什么样的面试形,问的问题都差不多,万变不离其宗,都有规律可寻。其实对所有的面试官而言,只有一个目的:在最短的时间里了解到你最多的信息。想高效率的准备面试,先从这七个大方面着手吧!
一、基本情况
1、请用最简洁的语言描述您从前的工作经历和工作成果。
二、专业背景
您认为此工作岗位应当具备哪些素质?
三、工作模式
您平时习惯于单独工作还是团队工作?
四、价值取向
您对原来的单位和上司的看法如何?
五、资质特性
您如何描述自己的个性?
六、薪资待遇
是否方便告诉我您目前的待遇是多少?
七、背景调查
您是否介意我们通过您原来的单位迚行一些调查?
95%的面试基本上都离不开这些问题,当然还有可能问一些专业问题,我想如果你做过的话应该都不是什么难事,一般面试官都不会过多的问专业方面的问题的。
面试问题redis有哪些集群方案
多个同构twemproxy(配置相同)同时工作,
接受客户端的请求,根据hash算法,转发给对应的redis。
优点:
-开发简单,对应用几乎透明
-历史悠久,方案成熟
缺点:
-代理影响性能
- lvs和twemproxy会有节点性能瓶颈
- redis扩容非常麻烦
- twitter内部已放弃使用该方案,新使用的架构未开源
Codis:
ZooKeeper:
存放路由表和代理节点元数据
分发Codis-Config的命令
Codis-Config:
集成管理工具,有web界面
Codis-Proxy:
无状态代理,兼容Redis协议
对业务透明
Codis-Redis:
基于2.8版本,二次开发
加入slot支持和迁移命令
优点:
-开发简单,对应用几乎透明
-性能比Twemproxy好
-有图形化界面,扩容容易,运维方便
缺点:
-代理依旧影响性能
-组件过多,需要很多机器资源
-修改了redis代码,导致和官方无法同步,新特性跟进缓慢
-开发团队准备主推基于redis改造的reborndb
Redis Cluster:
P2P模式,无中心化
把key分成16384个slot
每个实例负责一部分slot
客户端请求若不在连接的实例,该实例会转发给对应的实例。
通过Gossip协议同步节点信息
优点:
-组件all-in-box,部署简单,节约机器资源
-性能比proxy模式好
-自动故障转移、Slot迁移中数据可用
-官方原生集群方案,更新与支持有保障
缺点:
-架构比较新,最佳实践较少
-多键操作支持有限(驱动可以曲线救国)
-为了性能提升,客户端需要缓存路由表信息
-节点发现、reshard操作不够自动化
Redis 面试宝典之 Redis 如何处理已经过期的数据
本文讲的是 Redis的键值过期之后的数据处理,讲的是正常情况下的数据清理,但面试者常常会把两个概念搞混,以至于和期望的工作失之交臂。我们本文的职责之一就是帮读者朋友搞清楚二者的区别,相信看完本文你就会对二者的概念有一个本质上的认识。
我们本文的面试题是,Redis如何处理已过期的数据?
在 Redis中维护了一个过期字典,会将所有已经设置了过期时间的键值全部存储到此字典中,例如我们使用设置过期时间的命令时,命令如下:
此命令表示 5s之后键值为 mykey:java的数据将会过期,其中 ex是 expire的缩写,也就是过期、到期的意思。
过期时间除了上面的那种字符类型的直接设置之外,还可以使用 expire key seconds的方式直接设置,示例如下:
获取键值的执行流程是,当有键值的访问请求时 Redis会先判断此键值是否在过期字典中,如果没有表示键值没有设置过期时间(永不过期),然后就可以正常返回键值数据了;如果此键值在过期字典中则会判断当前时间是否小于过期时间,如果小于则说明此键值没有过期可以正常返回数据,反之则表示数据已过期,会删除此键值并且返回给客户端 nil,执行流程如下图所示:
这是键值数据的方法流程,同时也是过期键值的判断和删除的流程。
本文的面试题考察的是你对 Redis的过期删除策略的掌握,在 Redis中为了平衡空间占用和 Redis的执行效率,采用了两种删除策略,上面的回答不完全对,因为他只回答出了一种过期键的删除策略,和此知识点相关的面试题还有以下这些:
常见的过期策略,有以下三种:
关于本次redis面试题和redis分布式锁原理面试的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。