Fork me on GitHub

编译安装redis 4.0.9版本,并配置集群

  一、下载redis 包

https://download.redis.io/releases/redis-4.0.9.tar.gz

  二、解压缩redis包

tar xf redis-4.0.9.tar.gz

  三、安装gcc,zlib-devel

yum install gcc zlib-devel -y

  四、进入解压缩的目录

cd redis-4.0.9

  五、安装,并指定安装位置

make PREFIX=/apps/redis install

  六、复制配置文件到redis

cp redis.conf /apps/redis/etc/

   七、修改配置文件

#守护进程模式运行(后台运行,默认前台运行)
daemonize yes
#设置密码
masterauth 123456
#日志文件存放位置
logfile "/apps/redis/logs/redis.log"
#开启集群(本次编译用来做集群,所以要取消注释这两项)
cluster-enabled yes
cluster-config-file nodes-6379.conf
#修改监听端口0.0.0.0
bind 0.0.0.0
#设置本机密码
requirepass 123456
#设置主服务器密码(在集群中,这两个密码项非常重要,否则会导致主从数据不同步,并且不报错!!!)
masterauth 123456

  八、制作软连接,方便使用

ln -s /apps/redis/bin/redis* /usr/bin/

  九、带配置文件启动redis(默认启动使用的是默认设置这个设置改不了)

redis-server /apps/redis/etc/redis.conf

配置集群:

  十、将redis-trib.rb制作软链接到 /usr/bin/下 方便使用

ln -s /apps/redis-4.0.9/src/redis-trib.rb /usr/bin/

  ## redis-trib.rb 集群管理工具,这个工具是 redis 官方推出的管理 redis 集群的工具,集成在redis 的源码 src 目录下,是基于 redis 提供的集群命令封装成简单、便捷、实用的操作工具,redis-trib.rb是 redis 作者用 ruby 完成的

  十一、下载ruby包(ruby和redis模块只需要在一台电脑安装即可)

wget https://cache.ruby-lang.org/pub/ruby/ruby-2.5.0.tar.gz

  ##yum源里带的版本低使用不了,版本高于2.30以上即可

  十二、解压缩ruby

tar xf ruby-2.5.0.tar.gz

  十三、进入ruby目录

cd ruby-2.5.0

  十四、编译安装

1 ./configure 
2 make && make install

  十五、下载redis模块

wget wget https://rubygems.org/downloads/redis-4.2.3.gem

  ##版本不限,和这个差不多就行

  十六、安装指定的redis模块

gem install -l /apps/redis-4.2.3.gem

  ## 也可也直接gem install redis

返回如下则表示安装成功:

Successfully installed redis-4.2.3
Parsing documentation for redis-4.2.3
Installing ri documentation for redis-4.2.3
Done installing documentation for redis after 0 seconds
1 gem installed

  十七、创建集群(任意一台安装过ruby的电脑上执行即可)

redis-trib.rb create --replicas 1 192.168.1.9:6379 192.168.1.8:6379 192.168.1.7:6379 192.168.1.6:6379 192.168.1.5:6379 192.168.1.4:6379

  ##我这里同时安装了6台电脑,直接创建集群

  十八、提示如下,输入yes生成配置文件

redis-trib.rb create --replicas 1 192.168.1.9:6379 192.168.1.8:6379 192.168.1.7:6379 192.168.1.6:6379 192.168.1.5:6379 192.168.1.4:6379
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:#创建了三个主节点
192.168.1.9:6379
192.168.1.8:6379
192.168.1.7:6379
Adding replica 192.168.1.6:6379 to 192.168.1.9:6379  ### 192.168.1.6是192.168.1.9的从节点
Adding replica 192.168.1.5:6379 to 192.168.1.8:6379
Adding replica 192.168.1.4:6379 to 192.168.1.7:6379
M: 73a51b03d3ae1ae60573924a36e35a4160ea2a8a 192.168.1.9:6379 # M表示master 主节点,S表示slave 从节点
   slots:0-5460 (5461 slots) master
M: bc591a36af254e510488ab184b0e638e7298ff6d 192.168.1.8:6379 ##M后的一串数字是随机生成的,在集群中,以ID号区分主机,不以IP地址区分
   slots:5461-10922 (5462 slots) master ## slots是按照顺序分的,每台上的应该是差不多的,也会有原因导致无序分配,
M: 7226c301d028168f22f60930db0bf8b4260c2905 192.168.1.7:6379
   slots:10923-16383 (5461 slots) master
S: 3bcd400f071643f814d45479bfc3a56612eca471 192.168.1.6:6379
   replicates 73a51b03d3ae1ae60573924a36e35a4160ea2a8a  ## 这里的ID就是master的ID
S: 7a1ad13e2d2e3ad84a5da2d001e1680fcf8b2255 192.168.1.5:6379
   replicates bc591a36af254e510488ab184b0e638e7298ff6d  ##slave节点是没有slots的,master宕机后会自动继承
S: d53b5724df5ae6f6f5305cebb419e6b5ec2a6096 192.168.1.4:6379
   replicates 7226c301d028168f22f60930db0bf8b4260c2905Can I set the above configuration? (type 'yes' to accept): yes
##配置文件中dir /var/lib/redis这里定义了放在哪,这个配置就会保存在这个位置,配置文件自动生成,不需要手动更改

返回如下则表示成功

[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

  每一台redis服务器,必须是master ,cluster_enabled 必须是1 ,里面必须没有任何数据,有数据的话使用创建集群是加不进去的,使用FLUSHDB 清空当前数据库里所有信息,FLUSHALL 清空redis所有库所有数据

 

posted @ 2021-07-28 14:11  Alex-Lzy  阅读(376)  评论(0编辑  收藏  举报