redis心得
这里有篇redis基础讲解非常全的
https://www.kancloud.cn/zatko/redis/2274349
网上的redis教程其实非常多,redis通常是作为缓存,数据库来使用。单节点的就没必要特别讲了,网上有很多资料,之后会在别的篇章分享一些。
对于高级工程师必须要知道redis的几个东西,一个是redis的单节点性能,第二个redis如何实现高可用,第三个是redis分布式锁。
一、单节点性能,网上有很多分析文章,大同小异。主要是redis作为内存数据库,主要还是看内存大小与cpu性能。一般来讲读会比写快,写大概是读的70%左右的效率。通常读是10w+/s,写7w+/s。同时操作键值方式可能会影响性能
二、高可用主要是两点,一个是sentinel(主从哨兵模式),还有一个是cluster。前者一般是通过一主一从三哨兵,或者一主二从三哨兵。哨兵之所以选择奇数是因为选举算法的原因。一般同时会配置读写分离。即
主节点写,从节点读。这里面试通常会问同步方式细节,还有选举过程细节。即使这样,sentinel主要还是只能维持高可用,性能峰值有限,而且横向拓展不容易,效率低。具体看后续教程。接着是cluster,这种方法主要通过哈希槽的方式将键值平均分配,官方建议是三主三从。性能目前暂未找到资料。
三、分布式锁,这边主要是通过reddison实现,当然分布式锁肯定也存在问题,比如在加锁过程中可能存在主从切换,这些都要考虑。单写出可靠分布式锁的代码还是不太够,还要懂得异常情况的处理。
总结,市面上的资料,到高级以上基本就断档,断断续续的了,后续学习,可能需要看一些培训机构的架构师资料。话说,redis学到这程度。在一线面面高级,还是有点勉强的。要知道这都是是以前资深和架构师操心的事情,因为培训机构泛滥。但是基本上大多数培训机构老师不论学历,到这程度,也会经常开始讲不清楚逻辑,个人认为对方可能也是照着ppt读了。