Centos7安装Redis 设置为开机启动 以及Centos7安装redis集群哨兵模式
系统环境:Centos7
Redis安装包版本:redis-5.0.5.tar.gz
一、安装Redis
在线下载redis包 使用以下命令
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
下载完毕之后解压 此处我们解压到/usr/local/路径
tar -xvf /opt/redis-5.0.5.tar.gz /usr/local
如果以上命令出现这种情况
tar: /usr/local:归档中找不到
tar: 由于前次错误,将以上次的错误状态退出
在原有的命令中加-C
tar -xvf /opt/redis-5.0.5.tar.gz -C /usr/local
使用yum 安装gcc依赖,一路y同意过去即可
yum install gcc
cd进redis安装目录下
在此目录下编译安装
make MALLOC=libc
将/usr/local/redis-5.0.5/src目录下的文件加到/usr/local/bin目录
cp /usr/local/redis-5.0.5/src /usr/local/bin
下一步进行安装
cd src && make install
至此我们的redis已经安装成功了,接下来就是将redis改为默认开机启动。
二、Redis启动方式
Redis有三种启动方式
1、直接启动
切换到redis-5.0.5/src文件夹下
cd src
启动redis
./redis-server
出现这个图形表示启动成功!
按ctrl+c可以退出
2、以后台进程方式启动
修改redis-5.0.5/redis.conf文件
vim redis.conf
将daemonize no改为 daemonize yes
指定redis.conf文件启动
./redis-server /usr/local/redis-5.0.5/redis.conf
出现这样则启动成功
关闭redis进程
ps -aux | grep redis
kill -9 此处写端口号
3、设置Redis开机自启动
cd到/etc目录下新建redis目录
mkdir redis
将/usr/local/redis-5.0.5/redis.conf 文件复制一份到/etc/redis目录下,并命名为6379.conf
cp /usr/local/redis-5.0.5/redis.conf /etc/redis/6379.conf
将redis的启动脚本复制一份放到/etc/init.d目录下
cp /usr/local/redis-5.0.5/utils/redis_init_script /etc/init.d/redisd
cd到/etc/init.d目录下
cd /etc/init.d/
然后执行自启命令
chkconfig redisd on
如果执行chkconfig redisd on命令报错
service redisd does not support chkconfig
使用vim编辑redisd文件,在第一行加入如下两行注释,保存退出
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
注释的意思是,redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。
再次执行开机自启 chkconfig redisd on 命令,成功。
启动:
service redisd start
Starting Redis server…
2288:C 13 Dec 13:51:38.087 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2288:C 13 Dec 13:51:38.087 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=2288, just started
2288:C 13 Dec 13:51:38.087 # Configuration loaded
如果启动出现以下问题
/var/run/redis_6379.pid exists, process is already running or crashed
shutdown -r now
软重启让系统自动恢复下就行了
关闭:
service redisd stop
三、安装redis集群哨兵模式
1、整体哨兵模式规划
redis节点规划:6381 (master), 6382 (slave),6383 (slave),6384 (slave)
sentinel模式节点规划:26381 , 26382
2、Redis主从安装步骤
在/usr/local/目录下创建 redis-sentinel文件夹
进入/usr/local/redis-sentinel目录下,创建文件夹 master-6381 ,slave-6382 ,slave-6383 ,slave-6384 ,sentinel-26381 ,sentinel-26382
mkdir master-6381 slave-6382 slave-6383 slave-6384 sentinel-26381 sentinel-26382
把刚刚安装目录redis-5.0.5下redis.conf拷贝到目录下 master-6381 slave-6382 slave-6383 slave-6384
cp /usr/local/redis-5.0.5/redis.conf master-6381
cp /usr/local/redis-5.0.5/redis.conf master-6382
cp /usr/local/redis-5.0.5/redis.conf master-6383
cp /usr/local/redis-5.0.5/redis.conf master-6384
把刚刚安装目录redis-5.0.5下sentinel.conf 拷贝到 sentinel-26381 ,sentinel-26382
cp /usr/local/redis-5.0.5/sentinel.conf sentinel-26381
cp /usr/local/redis-5.0.5/sentinel.conf sentinel-26382
接下来我们配置主从服务器
主服务器修改/usr/local/redis-sentinel/master-6381/目录下 redis.conf 配置文件
6382端口服务器修改 /usr/local/redis-sentinel/master-6382/目录下 redis.conf 配置文件
6383端口服务器修改 /usr/local/redis-sentinel/master-6383/目录下 redis.conf 配置文件
6384端口服务器修改 /usr/local/redis-sentinel/master-6384/目录下 redis.conf 配置文件
配置项 | 主服务器6381 | 从服务器 6382、6383、6384 | 备注 |
---|---|---|---|
bind | 127.0.0.1 (本机地址) | 127.0.0.1(本机地址) | |
port | 6381 (主服务器端口号) | 6382、6383、6384 (从服务器端口号) | |
daemonize | yes (后台启动) | yes | |
pidfile | /var/run/redis_6381.pid (redis 后台启动的时候,会在/var/run/默认生成一个pid文件) | pidfile /var/run/redis-6382.pid、pidfile /var/run/redis-6383.pid、pidfile /var/run/redis-6384.pid | |
protected-mode | no (保护模式关闭,否则启动哨兵的时候,无法正常运行(还可以设置密码的方式)) | no | |
dir | /usr/local/redis-sentinel/master-6381/data (数据保存目录) | dir /usr/local/redis-sentinel/slave-6382/data、dir /usr/local/redis-sentinel/slave-6383/data、dir /usr/local/redis-sentinel/slave-6384/data | |
slaveof | 无 | 127.0.0.1 6381 | 主服务器的IP 主服务器端口号,只有从服务器设置。 |
接下来需要在上面表格中填写的相应的几个路径下创建data文件夹
当创建完data文件夹后使用以下命令
/usr/local/redis-5.0.5/bin/redis-server /usr/local/redis-sentinel/master-6381/redis.conf
/usr/local/redis-5.0.5/src/redis-server /usr/local/redis-sentinel/master-6382/redis.conf
/usr/local/redis-5.0.5/bin/redis-server /usr/local/redis-sentinel/master-6383/redis.conf
/usr/local/redis-5.0.5/src/redis-server /usr/local/redis-sentinel/master-6384/redis.conf
查看进程是否启动成功
ps -aux | grep redis
启动完成后添加哨兵监控主节点
3、添加哨兵监控主节点
修改/usr/local/redis-sentinel/sentinel-26381目录下的sentinel.conf
修改/usr/local/redis-sentinel/sentinel-26382目录下的sentinel.conf
配置项 | sentinel-26381 | sentinel-26381 | 备注 |
---|---|---|---|
port | 26381 (指定sentinel端口号) | 26382 | |
daemonize | yes (后台启动) | yes | |
• logfile | /usr/local/redis-sentinel/sentinel-26381/sentinel-26381.log(日志文件存储位置) | /usr/local/redis-sentinel/sentinel-26381/sentinel-26382.log | |
protected-mode | no (保护模式关闭,否则启动哨兵的时候,无法正常运行(还可以设置密码的方式)) | no | |
dir | /usr/local/redis-sentinel/sentinel-26381/data (数据保存目录) | /usr/local/redis-sentinel/sentinel-26382/data | |
sentinel monitor mymaster | 127.0.0.1 6381 2 | 127.0.0.1 6381 2 | [主服务器节点IP] [主服务器节点port] [几个哨兵检测到主节点失联数量] (至少有几个哨兵检测到主服务器故障了,才进行故障迁移) |
记得在上面表格中的写的位置创建data文件夹
启动哨兵,并查看哨兵日志
/usr/local/redis-5.0.5/src/redis-sentinel /usr/local/redis-sentinel/sentinel-26381/sentinel.conf
/usr/local/redis-5.0.5/src/redis-sentinel /usr/local/redis-sentinel/sentinel-26382/sentinel.conf
查看是否启动成功
ps -ef | grep sen
最后我们测试下主从服务器能否同步数据
登录从服务器
/usr/local/redis-5.0.5/src/redis-cli -h 127.0.0.1 -p 6382
查看数据大小
dbsize
获取name的value
get name
最后退出
quit
然后我们登录主服务器
/usr/local/redis-5.0.5/src/redis-cli -h 127.0.0.1 -p 6381
查看主服务器信息
info replication
获取name的value
get name
给name赋值
set name jijiji
退出,登录从服务器,获取name的value
/usr/local/redis-5.0.5/src/redis-cli -h 127.0.0.1 -p 6382
get name
至此主从服务器可以同步数据。
测试哨兵
先查看哨兵日志
这时显示主服务器为6381
直接把master节点进程kill掉,再次观看哨兵日志
此时主服务器转换为6383,成功!
博客参考大佬教程 https://www.cnblogs.com/zuidongfeng/p/8032505.html