Redis集群
Redis集群简介
Redis集群(RedisCluster)
RedisCluster实现了对Redis的水平扩容,即启动N个Redis节点,将整个数据库分布存储在这N个节点当 中,每个节点存储总数据的1/N。
RedisCluster通过分区(partition)来提供一定程度的可用性(availability):即集群有一部分节点失 效或者无法进行通讯,集群也可以继续处理命令。
Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接,用 来交换彼此的信息。
为了使得集群在一部分节点宕机或者无法与集群的大多数节点进行通讯的情况下, 仍然可以正常运作, Redis 集群对节点使用了主从复制功能。
Redis集群搭建
-
删除持久化数据,aof、rdb。
-
创建6个实例,即在/usr/local/myredis文件夹下分别创建6379、6380、6381、6389、6390、 6391的conf。
完成第4步再来复制
按:进入编辑模式输入%s/6379/6380 其他几个文件也是换成相应的数字
-
在redis.conf中关闭appendonly和appendonly、protected-mode,注释bind 127.0.0.1 - :: 1。
-
在不同的conf文件中,配置对应的内容
-
可以通过include /usr/local/myredis/redis.conf将公共基础配置直接引入文件。 将include /usr/local/myredis/redis.conf统一添加到这三个文件中
-
在各个文件中,添加对应的pidfile、port、dbfilename、cluster-enabled(是否打开集 群)、cluster-config-file(设定节点配置文件名)、cluster-node-timeout (设置节点失联 时间,超过该时间(毫秒),集群自动进行主从切换)
如:
redis6379.conf中添加
pidfile /var/run/redis_6379.pid port 6379 dbfilename dump6379.rdb # 是否打开集群 cluster-enabled yes # 设定节点配置文件名 cluster-config-file nodes-6379.conf # 设置节点失联时间,超过该时间(毫秒),集群自动进行主从切换 cluster-node-timeout 15000
-
-
启动该6个redis,并确保是否全部生成nodes-xxxx.conf文件。(启动之前务必保证redis服务支持 远程连接)
-
进入redis安装目录下的src文件夹
-
在该文件夹下执行命令
redis-cli --cluster create --cluster-replicas 1 10.0.0.8:6379 10.0.0.8:6380 10.0.0.8:6381 10.0.0.8:6389 10.0.0.8:6390 10.0.0.8:6391
此处使用真实ip地址,-replicas 1代表采用最简单的方式配置集群,一台主机,一台从机。 replicas表示每个master需要有几个slave。
执行命令后,redis提供推荐的主从配置建议,执行同意。
集群创建成功。
-
通过./redis-cli -c -p 6379可连接至集群(由于所有节点相通,任意端口号均可) 在redis客户端中执行cluster nodes查看节点状态。