前提:
redis使用的版本是4.0.5,在centos7下安装。首先安装单机版,然后配置一主二从,最后配置哨兵。
一、单机版安装
1.redis安装包redis-4.0.5.tar.gz下载, 可以去redis的官网下载, 地址:Index of /releases/
2.将下载的安装包上传到linux的/usr/local目录, 并进行解压:
tar -zxvf redis-4.0.5.tar.gz
3.进入到解压完的redis目录中,并执行安装(如果报错,重试执行):
cd redis-4.0.5
make && make test && make install
注意:如果以上安装报错如下
则需要先安装tcl8.6.1-src.tar.gz,再重新解压安装redis。安装tcl8.6.1-src.tar.gz步骤如下:
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
cd /usr/local/tcl8.6.1/unix/
./configure
make
make install
4.进入redis的目录中的util目录下
cd utils
5.将该目录下的redis_init_script文件重命名为redis_6379(6379是redis启动的端口号, 如果要使用其他端口号, 可以将文件命名为其他名称, 端口的修改可以在redis_6379中的REDISPORT配置修改, 默认为6379):
mv redis_init_script redis_6379
6.然后将redis_6379移动到/etc/init.d目录下:
mv redis_6379 /etc/init.d
7.创建两个目录/etc/redis, /var/redis/6379:
cd /etc
mkdir redis (存放redis的配置文件)
cd /var
mkdir redis
cd redis
mkdir 6379 (存放redis的持久化文件)
8.进入到redis的目录中, 找到redis的配置文件redis.conf, 拷贝到/etc/redis下:
cd /usr/local/redis-4.0.5
cp redis.conf /etc/redis/
9.并重命名为6379.conf
cd /etc/redis/
mv redis.conf 6379.conf
10.修改6379.conf中的配置,搜索以下蓝色字体属性并修改
(1)daemonize yes (让redis以后台进行启动)
(2)port 6379 ( redis的启动端口号)
(3)dir /var/redis/6379 (持久化文件存储位置)
(4)requirepass XXXX (删除前面的注释符号#,XXXX为自己的密码 )
(5)logfile ./redis.log
11.启动redis, 执行如下命令:
cd /etc/init.d
chmod 777 redis_6379
./redis_6379 start
12.确认redis进程是否启动:
ps -ef | grep redis
二、一主二从配置
1.准备三台机器
10.12.12.191(主)、10.12.12.192(从)、10.12.12.193(从)
按照上面单机版安装步骤安装好redis
2.修改10.12.12.191(主)配置文件6379.conf
cd /etc/redis/
vi 6379.conf
搜索以下蓝色字体属性并修改:
bind 0.0.0.0 (表示允许所有远程访问)
protected-mode no (关闭保护模式,可以外部访问)
masterauth XXXX (slave服务连接master的密码,跟本机redis密码一致)
3.修改10.12.12.192(从)、10.12.12.193(从)配置文件6379.conf
cd /etc/redis/
vi 6379.conf
搜索以下蓝色字体属性并修改:
bind 0.0.0.0 (表示允许所有远程访问)
protected-mode no (关闭保护模式,可以外部访问)
masterauth XXXX (slave服务连接master的密码,跟本机redis密码一致)
slaveof主redis服务器ip 主redis端口)
注意:5.0以上版本 slaveof 属性关键字为 replicaof
4.重启10.12.12.192(从)、10.12.12.193(从)的redis
ps -ef | grep redis
先找到对应$pid,再进行kill $pid
cd /usr/local/bin
./redis-server /etc/redis/6379.conf
5. 10.12.12.191(主)查看redis主从信息
先登录
cd /usr/local/bin
./redis-cli -h 127.0.0.1 -p 6379 -a Cmcc@123
info replication
如下截图,显示有两个slave已经连接上
6.测试验证
登录10.12.12.191(主)、10.12.12.192(从)
cd /usr/local/bin
./redis-cli -h 127.0.0.1 -p 6379 -a XXXX(你的密码)
在10.12.12.191(主)上set值,在10.12.12.192(从)上get键
三、哨兵模式配置
1.将10.12.12.191(主)、10.12.12.192(从)、10.12.12.193(从)三台机器目录/usr/local/redis-4.0.5下的sentinel.conf文件内容都修改为以下:
|
2.三台机器都执行以下,创建目录
cd /usr/local/redis-4.0.5
mkdir sentinel
3.分别在10.12.12.191(主)、10.12.12.192(从)、10.12.12.193(从)三台机器中执行以下命令,启动哨兵
cd /usr/local/bin/
./redis-sentinel /usr/local/redis-4.0.5/sentinel.conf
4.查看10.12.12.192(从)、10.12.12.193(从)的执行日志
cd /usr/local/redis-4.0.5/sentinel/
tail -100f redis-sentinel.log
5.测试验证
三台机器先登录
cd /usr/local/bin
./redis-cli -h 127.0.0.1 -p 6379 -a XXXX(你的密码)
info replication
然后停止10.12.12.191(主)的redis
ps -ef | grep redis
先找到对应$pid,再进行kill $pid
等待30秒再查看10.12.12.192、10.12.12.193的主从信息:
可以看到192的主节点信息变为了193,193节点由从变为了主。
重启191节点
cd /usr/local/bin
./redis-server /etc/redis/6379.conf
查看主从信息
info replication
可以看到重启后的191变为了从机,主机为193。