欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Redis:测试redis集群

程序员文章站 2022-03-10 15:36:13
...

1.声明

当前内容主要用于本人学习和复习,当前内容主要为测试前面的集群,看是否存在某些问题

当前内容基于前面:Redis集群的安装

2.连接测试

./src/redis-cli -c -h 192.168.1.104 -p 7001

Redis:测试redis集群
进入成功!

3.测试添加和获取数据(使用不同的端口测试)

此时开启一个端口访问7002端口

./src/redis-cli -c -h 192.168.1.104 -p 7002

Redis:测试redis集群
1.使用7001的连接添加数据name=admin
Redis:测试redis集群
此时发现当前的端口被定向到7002端口,然后是通过7002端口写入的

2.使用7002端口访问name
Redis:测试redis集群

3.向7002端口中设置name=guest

Redis:测试redis集群
发现没有被定向重写,直接写入的

测试连接到7003、8001、8002、8003端口时获取数据都出现定向到7002端口

所以可以理解为7002就是当前集群的主节点,所有节点都是从节点

4.宕机测试

1.直接将当前的redis的主要节点7002直接宕机

ps aux | grep redis

Redis:测试redis集群
杀死7002端口

kill -9 1769

Redis:测试redis集群

2.此时再次连接到节点7002

./src/redis-cli -c -h 192.168.1.104 -p 7002

Redis:测试redis集群

发现此时7002节点不可访问

3.连接到节点7001,并获取name值

./src/redis-cli -c -h 192.168.1.104 -p 7001
get name

Redis:测试redis集群
发现此时获取到了数据,该数据被定向到8001节点(说明此时8001是主节点)

再次写入数据name=root并获取空key:name
Redis:测试redis集群
发现获取空key的时候当前的连接会出现移动到7003中,如果获取存在的key就会返回到原来的8001节点中

4.再次宕机8001节点
Redis:测试redis集群
5.再次测试节点7003、7001、8002、8003等节点
Redis:测试redis集群

此时发现整个集群全部都是不可用的

总结

  1. 6个redis的集群中只有两个节点,一个是主节点7002和候补节点8001
  2. 如果主节点7002出现宕机那么,候补节点8001就会代替7002节点并实现数据的接收传递
  3. 如果这两个主要的节点都宕机,那么整个集群则不可用
  4. 如果获取一个不存在的key那么会出现连接跳转到下一个节点获取

图解(个人见解)

所有节点都正常的时候
Redis:测试redis集群
当主节点宕机后
Redis:测试redis集群
再次出现主节点宕机,那么宕机的节点超过总主节点的一半了,此时整个集群不可用

5.总结

1.6台机器的redis的集群操作,实际上由两个节点可以使用(不能宕机),如果这两个节点都宕机,那么集群失败,整个都不可用

2.该集群连接并没有提供一个端口让我们访问,而是指定ip的连接,每次操作需要修改ip

3.该集群中如果访问一个不存在的key会出现连接跳转的情况

以上纯属个人见解,如有问题请联本人男!

相关标签: redis