- 进入在“主” MySQL 容器实例当中新建库-利用库-新建表-插入数据,ok:
复制代码
- mysql> create database db01;
- Query OK, 1 row affected (0.00 sec)
- mysql> use db01;
- Database changed
- mysql> create table t1(id int,name varchar(255));
- Query OK, 0 rows affected (0.02 sec)
- mysql> insert into t1 values(1,"lihua");
- Query OK, 1 row affected (0.06 sec)
- mysql> select * from t1;
- +------+-------+
- | id | name |
- +------+-------+
- | 1 | lihua |
- +------+-------+
- 1 row in set (0.00 sec)
2. Docker 当中安装 redis 集群(大厂口试题第4季-分布式存储案例真题)
- 进入到 “从” MySQL 容器实例当中-利用库-查察记录,ok
复制代码
- mysql> use db01;
- Reading table information for completion of table and column names
- You can turn off this feature to get a quicker startup with -A
- Database changed
- mysql> select * from t1;
- +------+-------+
- | id | name |
- +------+-------+
- | 1 | lihua |
- +------+-------+
- 1 row in set (0.00 sec)
假设Node C宕机,可以看到此时对象A、B、D不会受到影响,只有C对象被重定位到Node D。一般的,在一致性Hash算法中,如果一台服务器不可用,则受影响的数据仅仅是此服务器到其环空间中前一台服务器(即沿着逆时针方向行走碰到的第一台服务器)之间数据,别的不会受到影响。简单说,就是C挂了,受到影响的只是B、C之间的数据,并且这些数据会转移到D举行存储。、
- 一致性哈希算法的容错性
一致性哈希算法分区的缺点:一致性哈希算法的数据倾斜问题
数据量增长了,需要增长一台节点NodeX,X的位置在A和B之间,那收到影响的也就是A到X之间的数据,重新把A到X的数据录入到X上即可,不会导致hash取余全部数据重新洗牌。
- 一致性哈希算法的扩展性
2.1.3 哈希槽分区
将所有的存储节点排列在收尾相接的Hash环上,每个key在计算Hash后会顺时针找到临近的存储节点存放。
- 为了在节点数目发生改变时尽可能少的迁移数据
而当有节点到场或退出时仅影响该节点在Hash环上顺时针相邻的后续节点。
- 长处
到场和删除节点只影响哈希环中顺时针方向的相邻的节点,对其他节点无影响。
- 缺点
数据的分布和节点的位置有关,因为这些节点不是均匀的分布在哈希环上的,所以数据在举行存储时达不到均匀分布的效果。
注意:扩容,添加新的主从到集群当中时的步调:3.4 Redis 主从缩容{就是重新增的( 4 主 4 从),缩小为原来的(3 主 3 从)案例
- 添加好新的 Redis 节点。
- 先将 “主” 节点添加到集群当中,同时分配槽位。
- 分配好槽位后,再将 “从” 节点添加到新增的 “主” 节点当中。
- 不可以先移除 “主” 节点,而是先移除“从” 节点,因为主节点是可以写入数据的,而从节点是存储数据的,先移植数据
- 再将要移除的 “主”节点的 槽位移植到其他的节点当中。
“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继承在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |