1、redis集群部署
1.1、redis安装环境和版本
用三台虚拟机模拟6个节点,一台机器3个节点,创建出3 master、3 salve 环境
注意:master对应的slave不要在一台服务器上
1.2、安装过程
1. 解压
cd /data/app/app/setup
tar -xzvf redis-xxx.tar.gz -C /data/app/app
2. 编译安装
cd /data/app/app/redis-xxx
//yum update
yum –y install gcc gcc-c++ autoconf automake
make && make install //编译需要安装gcc
离线安装gcc:
上传gcc.zip到/data/app/app/setup
unzip gcc.zip
cd gcc
rpm -Uvh *.rpm --nodeps --force (这是当前文件夹中所有的rpm包强制,忽略依赖去安装)安装完 g++ -v gcc –v查看
cd /data/app/app/redis-xxx
make && make install //编译需要安装gcc
3. 将 redis-trib.rb 复制到 /usr/local/bin 目录下
cd /data/app/app/redis-3.2.9/src
cp redis-trib.rb /usr/local/bin/
1.3、创建 Redis 节点
首先在 /data/app/app/redis-xxx目录下创建 redis_cluster 目录;
cd /data/app/app/redis-xxx
mkdir redis_cluster
cd redis_cluster
mkdir 7000 7001//在 redis_cluster 目录下,创建名为7000、7001的目录
将 /data/app/app/redis-xxx/redis.conf 拷贝到这三个目录中
cp /data/app/app/redis-xxx/redis.conf /data/app/app/redis-xxx/redis_cluster/7000
cp /data/app/app/redis-xxx/redis.conf /data/app/app/redis-xxx/redis_cluster/7001
分别修改这两个配置文件redis.conf:
port 7000 //每个配置文件都需要修改成对应的端口
bind 10.20.12.xx //需要改为其他节点机器可访问的ip为10.20.12.xx,10.20.44.xx
daemonize yes //redis后台运行
pidfile /var/run/redis_7000.pid //pidfile文件对应端口
cluster-enabled yes //必须开启集群,把注释#去掉
cluster-config-file nodes_7000.conf //集群的配置,对应端口
cluster-node-timeout 15000 //请求超时,默认15秒,可自行设置
logfile "/home/app/setup/redis-xxx/redis_cluster/7000/7000.log" 启动日志启动有问题加
appendonly no //aof日志开启,有需要就开启,它会每次写操作都记录一条日志
save “”
接着在另外两台机器上(10.20.12.xx,10.20.44.xx),重复以上步骤,把目录改为7000,7001,对应的配置文件也按照这个规则修改即可。
1.4、启动各个节点
#第一台机器上执行
redis-server /data/app/app/redis-xxx/redis_cluster/7000/redis.conf
redis-server /data/app/app/redis-xxx/redis_cluster/7001/redis.conf
#另外两台机器上执行
redis-server /data/app/app/redis-xxx/redis_cluster/7000/redis.conf
redis-server /data/app/app/redis-xxx/redis_cluster/7001/redis.conf
1.5、检查redis启动情况
ps -ef | grep redis
netstat -tnlp | grep redis
1.6、创建集群
Redis 官方提供了 redis-trib.rb 工具,就在/data/app/app/redis-xxx/src目录中,步骤3已将它复制到 /usr/local/bin 目录中,可以直接在命令行中使用。使用下面这个命令即可完成安装。
在线安装: yum install ruby ruby-devel rubygems rpm-build
离线安装:
1、安装ruby
2、tar -zxvf ruby-2.4.1.tar.gz
cd ruby-2.4.1
3、./configure --prefix=/usr/local/ruby
4、make && make install
5、配置环境
vi /etc/profile
export PATH=/sbin:/usr/local/ruby/bin:$PATH
source /etc/profile
6、安装zlib
7、tar -xvzf zlib-1.2.8.tar.gz
8、cd zlib-1.2.8
9、./configure
12、make && make install
13、cd /data/app/app/ruby-2.4.3/ext/zlib/
14、/usr/local/ruby/bin/ruby extconf.rb
15、make && make install
16、如果出现错误: make: *** No rule to make target `/include/ruby.h', needed by `zlib.o'. Stop.
17、 vim ext/zlib/Makefile
修改zlib.o: $(top_srcdir)../../include/ruby.h
18、上传rubygems-2.6.12.tgz 到/data/app/app/setup
19、cd /data/app/app/setup
20、tar xf rubygems-2.6.12.tgz
21、cd rubygems-2.6.12
22、ruby setup.rb //安装rubygems /usr/local/ruby/bin/ruby如果角色权限不够,root安
至此ruby rubygems离线安装成功
如果离线安装失败,可以使用下面的方法重新安装:
6.2 上传redis-3.3.3.gem 到/data/app/app/setup
gem install -l /data/app/app/setup /redis-3.3.3.gem
6.3运行 redis-trib.rb https://www.cnblogs.com/ivictor/p/9768010.html
https://blog.csdn.net/phantom_111/article/details/80328049 工具相关命令
# 建立三个master
redis-trib.rb create --replicas 1 192.168.1.12:7000 192.168.1.32:7000 192.168.1.6:7000 192.168.1.32:7001 192.168.1.6:7001 192.168.1.12:7001 建议用这个直接创建主从节点
redis-trib.rb create --replicas 0 10.20.12.138:7000 10.20.12.68:7000 10.20.44.65:7000
出现错误应该就是rubygems就是安装失败
# 执行命令后,会有每个master对应的标识和ip对应
M: 39cffd5a592c4f602a4fae0a5b1a807e8d4fbe7d 10.20.12.xx1:7000
slots:10923-16383 (5461 slots) master
M: 1a79938ad0c4b4e35ba756ea29e09cbb97e7bd87 10.20.12.xx2:7000
slots:5461-10922 (5462 slots) master
M: 777cb1ad6a1057b8212d40b7186e562575b6a216 10.20.44.xx3:7000
#给每一个master单独指定slave (原则:master与backup不在同一台服务器上)
#给 master 10.20.12.xx1:7000 指定 salve 10.20.12.xx2:7001
redis-trib.rb add-node --slave --master-id 39cffd5a592c4f602a4fae0a5b1a807e8d4fbe7d 10.20.12.xx2:7001 10.20.12.xx1:7000 |
#给 master 10.20.12.xx2:7000 指定 salve 10.20.44.xx3:7001
redis-trib.rb add-node --slave --master-id 1a79938ad0c4b4e35ba756ea29e09cbb97e7bd87 10.20.44.xx3:7001 10.20.12.xx2:7000 |
#给 master 10.20.44.xx3:7000 指定 salve 10.20.12.xx1:7001
redis-trib.rb add-node --slave --master-id 777cb1ad6a1057b8212d40b7186e562575b6a216 10.20.12.xx1:7001 10.20.44.xx3:7000 |
1.7、集群验证
//在第一台机器上连接集群的7000端口的节点 get hello
redis-cli -h 10.20.12.xxx -c -p 7000
//在另一台机器上连接7001节点,执行命令set hello world 其中hello是key, world是value
redis-cli -h 10.20.12.xxx-c -p 7001
能到到数据ok redisredis集群部署完成