redis分布式集群概述
Redis 集群是一个提供在多个Redis间节点间共享数据的程序集。
Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误.
Redis 集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令.
Redis 集群的优势:
- 自动分割数据到不同的节点上。
- 整个集群的部分节点失败或者不可达的情况下能够继续处理命令。
如何搭建环境
- 集群服务器配置
集群中有三台服务器,分别是192.168.56.101、192.168.56.103、192.168.56.105,预期搭建环境:三主三从,使用这三台服务器上的7000/7001端口提供redis服务 - 安装软件
安装ruby以及rubygems
sudo apt-get install ruby_full rubygems
安装rubygems的redis包
sudo gem install redis
安装redis 4.0.11
cd /usr/local/src
sudo wget http://download.redis.io/releases/redis-4.0.11.tar.gz
sudo tar zxf redis-4.0.11.tar.gz
cd redis-4.0.11
sudo make
sudo make test
sudo make install
- 配置集群
配置文件 (创建工作目录,生成配置文件)
sudo mkdir -p /usr/local/redis-cluster
cd /usr/local/redis-cluster
sudo mkdir 7000 7001
sudo cp /usr/local/src/redis-4.0.11/redis.conf /usr/local/redis-cluster/7000
sudo cp /usr/local/src/redis-4.0.11/redis.conf /usr/local/redis-cluster/7001
修改配置文件 步骤如下:
-
(1)绑定端口,port 7000
-
(2)注释掉IP绑定,##bind 127.0.0.1
-
(3)指定数据存放路径,dir /usr/local/redis-cluster/7000
-
(4)启动集群模式,cluster-enabled yes
-
(5)指定集群节点配置文件,cluster-config-file nodes-7000.conf
-
(6)后台启动,daemonize yes
-
(7)指定集群节点超时时间,cluster-node-timeout 5000
-
(8)修改pidfile配置,pidfile /var/run/redis_7000.pid
-
(9)将 protected-mode yes 修改为 protected-mode no
启动redis服务 (分别在各个服务器上执行以下命令)
sudo /usr/local/bin/redis-server /usr/local/redis-cluster/7000/redis.conf
sudo /usr/local/bin/redis-server /usr/local/redis-cluster/7001/redis.conf
启动集群 (在一个服务器节点上执行即可)
sudo /usr/local/src/redis-4.0.11/src/redis-trib.rb create --replicas 1 192.168.56.105:7000 192.168.56.105:7001 192.168.56.101:7000 192.168.56.101:7001 192.168.56.103:7000 192.168.56.103:7001
- 验证是否正常工作
> 查询集群中的主节点
redis-cli -h 192.168.56.105 -p 7000 cluster nodes |grep master