redis_cluster部署过程
Redis集群
1、多个redis节点网络互联,数据共享
2、所有的节点都是一主一从(可以是多个从),其中从不提供服务
3、不支持同时处理多个键(如mset/mget),因为redis需要把键均匀分布在各个节点上,
并发量很高的情况下同时创建键值会降低性能并导致不可预测的行为。
4、支持在线增加、删除节点
5、客户端可以连接任何一个主节点进行读写
redis安装
cd /usr/local/src
wget http://download.redis.io/releases/redis-4.0.8.tar.gz
tar xf redis-4.0.8.tar.gz
cd redis-4.0.8
make install
cp redis-4.0.8/src/redis-trib.rb /usr/bin/
Redis集群配置
安装ruby2.2
安装开发工具包组
yum -y groupinstall "Development Tools"
yum -y install gdbm-devel libdb4-devel libffi-devel libyaml libyaml-devel ncurses-devel openssl-devel readline-devel tcl-devel
cd /usr/local/src
wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.gz
tar xf ruby-2.4.1.tar.gz
cd ruby-2.4.1
./configure
make
make install
gem install redis
redis-trib.rb create --replicas 1 192.168.1.180:7000 192.168.1.180:7001 192.168.1.180:7002 192.168.1.183:7003 192.168.1.183:7004 192.168.1.183:7005
redis-cli -c -h 192.168.1.180 -p 7000 # -c说明以集群的方式登录
任意一个节点都可以创建key,或者查看key
redis-trib.rb check 192.168.1.180:7000 # 检测集群状态
cluster nodes # 列出节点
cluster info # 查看集群信息
cluster meet ip port # 添加节点
cluster replicate node_id # 将当前节点设置为指定节点的从
cluster forget node_id # 移除某个几点(如果是主节点需要先变成从节点后再删除)
cluster saveconfig # 保存配置文件
配置文件内容其他配置(红色字体内容是需要修改的内容):
port 7000
bind 192.168.1.180
daemonize yes
pidfile /var/run/redis_7000.pid
dir /data/redis_data/7000
cluster-enabled yes
cluster-config-file nodes_7000.conf
cluster-node-timeout 10100
appendonly yes
masterauth "fansik"
requirepass "fansik"
说明:在集群构建的时候需要将密码注释,否则报错:
>>> Creating cluster
[ERR] Sorry, can't connect to node 192.168.0.161:7000