引言 一直在使用redis,但是却没有系统的了解过它的底层实现,准备边学习边记录,深入了解redis。 打算分析以下几个方面: redis的基本类型及底层原理与java对比,每种数据类型的使用场景 redis底层对象 key的一致性Hash算法 单线程的redis“快” redis的过期策略以及内存 ...
分类:
其他好文 时间:
2019-12-11 00:37:13
阅读次数:
81
一、一致性hash的概念 一致哈希是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对 K/n个关键字重新映射,其中K是关键字的数量, n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。 二、普通hash的原理 普通hash算法能 ...
分类:
其他好文 时间:
2019-12-10 00:39:50
阅读次数:
76
有没有好奇过redis、memcache等是怎么实现集群负载均衡的呢? 其实他们都是通过一致性hash算法实现节点调度的。 讲一致性hash算法前,先简述一下求余hash算法: hash(object)%N 一个缓存服务器宕机了,这样所有映射到这台服务器的对象都会失效,我们需要把属于该服务器中的缓存 ...
分类:
编程语言 时间:
2019-12-06 21:33:07
阅读次数:
107
蚂蚁花呗一面(一个小时):JDK中有哪几个线程池?顺带把线程池讲了个遍Java容器有哪些?哪些是同步容器,哪些是并发容器?ArrayList和LinkedList的插入和访问的时间复杂度?java反射原理,注解原理?JDK中有哪几个线程池?顺带把线程池讲了个遍TCP和UDP的区别?TCP数据传输过程中怎么做到可靠的?说说一致性Hash原理新生代分为几个区?使用什么算法进行垃圾回收?为什么使用这个算
分类:
数据库 时间:
2019-12-05 21:55:52
阅读次数:
130
作者:中华石杉 面试题 redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗? 面试官心理分析 在前几年,redis 如果要搞几个节点,每个节点存储一部分的数据,得借助一些中间件来实现,比如说有 codis ...
分类:
编程语言 时间:
2019-12-04 01:44:42
阅读次数:
156
目的:无法阻止宕机的缓存被使用,但可以尽可能保证正常的服务器一切如常。[取余的方式一旦有机器增减,数据位置100%失效,缓存雪崩]场景:缓存服务器集群原理:节点在0-2^32圜环上占位,每次使用HASH(KEY)无限趋近的节点作为落地。【虚拟节点的目的是为了尽可能保持数据平衡,3台机器很容易失衡导致某一台机器数据过载。】classconsistentHash{private$nodes;priva
分类:
编程语言 时间:
2019-11-30 12:09:45
阅读次数:
79
0、在集群模式下,Redis 的 Key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 Hash 算法吗? 1、使用Redis有哪些好处? 2、Redis相比Memcached有哪些优势? 3、Redis常见性能问题和解决方案 4、MySQL里有2000w数据,Redis中只存20w的数据,如何 ...
分类:
其他好文 时间:
2019-11-27 12:34:22
阅读次数:
71
一、算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 二、应用场景 现 ...
分类:
编程语言 时间:
2019-11-10 11:38:57
阅读次数:
95
https://blog.csdn.net/cb_lcl/article/details/81448570 实现 https://www.cnblogs.com/fanguangdexiaoyuer/p/6549306.html ...
分类:
编程语言 时间:
2019-10-24 00:28:49
阅读次数:
68