redis集群创建

1redis集群部署

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 目录下,创建名为70007001的目录

/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          //需要改为其他节点机器可访问的ip10.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

2tar -zxvf ruby-2.4.1.tar.gz

cd ruby-2.4.1 

3./configure --prefix=/usr/local/ruby

4make && make install

5、配置环境

vi /etc/profile

export PATH=/sbin:/usr/local/ruby/bin:$PATH

source /etc/profile

6、安装zlib

7tar -xvzf zlib-1.2.8.tar.gz

8cd zlib-1.2.8 

9./configure

12make && make install

13cd /data/app/app/ruby-2.4.3/ext/zlib/

14/usr/local/ruby/bin/ruby extconf.rb

15make && make install

16、如果出现错误: make: *** No rule to make target `/include/ruby.h', needed by `zlib.o'. Stop.

17vim ext/zlib/Makefile

 修改zlib.o: $(top_srcdir)../../include/ruby.h

18上传rubygems-2.6.12.tgz /data/app/app/setup

19cd /data/app/app/setup

20tar xf rubygems-2.6.12.tgz

21cd rubygems-2.6.12

22ruby 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 (原则:masterbackup不在同一台服务器上)

#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  其中hellokey, worldvalue

redis-cli -h 10.20.12.xxx-c -p 7001

能到到数据ok  redisredis集群部署完成

原文地址:https://www.cnblogs.com/timor19/p/13822055.html