编译安装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所有库所有数据