信步漫谈之Redis—集群方案(Linux下搭建Cluster集群)

一、环境与说明

Linux 系统:Suse11(SLES-11-SP3-DVD-x86_64-GM-DVD1)
Redis 安装包:redis-4.0.11.tar.gz
     下载地址:
Ruby 运行环境:ruby-2.5.1.tar.gz
     下载地址:https://cache.ruby-lang.org/pub/ruby/
Ruby 包管理工具(RubyGems,用于安装 gem):rubygems-2.7.6.tgz
     下载地址:https://rubygems.org/rubygems/rubygems-2.7.6.tgz
Ruby-Redis 插件安装包:redis-3.3.0.gem
     下载地址:https://rubygems.org/gems/redis/versions

二、Cluster集群说明

Redis 的集群方案有三种:主从复制,哨兵模式和集群。在 redis3.0 及之后的版本中加入 Cluster 集群方式,实现了 Redis 的分布式存储,也就是说每台redis节点上存储不同的内容。

Redis-Cluster采用无中心结构,它的特点如下:
     1)所有的 redis 节点彼此互联(PING-PONG 机制),内部使用二进制协议优化传输速度和带宽。
     2)节点的 fail(宕机)是通过集群中超过半数的节点检测失效时才生效。
     3)客户端与 redis 节点直连,不需要中间代理层。客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。

Redis-Cluster工作方式:
在redis的每一个节点上,都有这么两个东西,一个是插槽(slot),它的的取值范围是:0-16383。还有一个就是 cluster,可以理解为是一个集群管理的插件。当我们的存取的 key 到达的时候,redis 会根据 crc16 的算法得出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。

为了保证高可用,redis-cluster 集群引入了主从模式,一个主节点对应一个或者多个从节点,当主节点宕机的时候,就会启用从节点。当其它主节点 ping 一个主节点A时,如果半数以上的主节点与 A 通信超时,那么认为主节点 A 宕机了。如果主节点 A 和它的从节点 A1 都宕机了,那么该集群就无法再提供服务了。

三、安装配置 Redis

1)安装搭建好 Redis 环境(安装在 /opt/redis/redis-4.0.11 目录,搭建方式参考我的另一篇博客:信步漫谈之Redis—Linux下环境搭建

2)创建集群目录 /opt/redis/cluster,在目录下创建 6 个端口的资源存储目录:7000、7001、7002、7003、7004、7005(因资源有限在同一台机子上开启多个不同端口的 redis 进程)

image

3)拷贝 redis 配置文件 redis.conf 到各个资源存储目录下,修改配置信息项如下

bind 192.168.106.171 protected-mode no port 7000 daemonize yes pidfile /var/run/redis_7000.pid dir /opt/redis/cluster/7000/ appendonly yes cluster-enabled yes cluster-config-file nodes-7000.conf cluster-node-timeout 5000

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjpdf.html