CentOS7.6 下 Redis4 编译安装及主从配置
- 系统版本:CentOS Linux release 7.6.1810
- Redis版本:redis-4.0.6
- 文件下载目录:/usr/local/src/
- Redis安装目录:/usr/local/redis/
redis安装
准备工作
yum安装gcc依赖
[root@localhost redis]# yum install gcc
获取安装文件
- 我安装的为redis4.0.6,如想安装最新版本登陆 http://www.redis.io/ 获取下载地址
[root@localhost redis]# cd /usr/local/src/
[root@localhost redis]# wget http://download.redis.io/releases/redis-4.0.6.tar.gz
[root@localhost redis]# tar -zxvf redis-4.0.6.tar.gz
安装
[root@localhost redis]# mv /usr/local/src/redis-4.0.6 /usr/local/redis
[root@localhost redis]# cd /usr/local/redis-4.0.6/
[root@localhost redis]# make MALLOC=libc
[root@localhost redis]# make install
cd src && make install
make[1]: Entering directory `/usr/local/redis/src'
CC Makefile.dep
make[1]: Leaving directory `/usr/local/redis/src'
make[1]: Entering directory `/usr/local/redis/src'
Hint: It's a good idea to run 'make test' ;)
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
make[1]: Leaving directory `/usr/local/redis/src'
[root@localhost redis]# redis-cli -v
redis-cli 4.0.6 # 安装成功
启动
守护进程(可选)
- 修改配置文件
[root@localhost redis]# vim /usr/local/redis/redis.conf
#daemonize no
daemonize yes # 开启守护进程模式
启动服务
[root@localhost redis]# redis-server
开机启动
添加配置文件
[root@localhost redis]# mkdir /etc/redis # 创建目录
[root@localhost redis]# cp /usr/local/redis/redis.conf /etc/redis/6379.conf # 复制配置文件
[root@localhost redis]# cp /usr/local/redis/utils/redis_init_script /etc/init.d/redisd # 复制启动文件
修改启动配置
- 增加注释信息
- 如不增加注释,chkconfig可能会提示服务不支持
[root@localhost init.d]# vim /etc/init.d/redisd
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
### BEGIN INIT INFO # 添加信息从此开始
# Provides: redis_6379
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Redis data structure server
# Description: Redis data structure server. See https://redis.io
### END INIT INFO # 添加信息从此结束
REDISPORT=6379 # 如端口号修改,此处相应修改
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
开机启动
[root@localhost redis]# chkconfig redisd on # 设置开机启动
服务管理
[root@localhost redis]# service redisd start # 启动服务
[root@localhost redis]# service redisd stop # 关闭服务
常见问题
/var/run/redis_6379.pid exists, process is already running or crashed
- 使用手动指定配置文件的方式启动后,再使用service redisd stop停止服务
- 然后再次service redisd start启动
[root@localhost redis]# redis-server
[root@localhost redis]# service redisd stop
[root@localhost redis]# service redisd start
redis主从配置
- 一台机器模拟主从
- master使用6379端口
- slave使用6380端口
配置
拷贝slave配置文件
[root@localhost redis]# cp /usr/local/redis/redis.conf /usr/local/redis/redis.6380.conf
master设置
[root@localhost redis]# vim /etc/redis/redis.conf
bind 0.0.0.0 # 绑定允许访问的ip地址,如本机模拟主从可不改变值仍使用127.0.0.1
slave设置
[root@localhost redis]# vim /usr/local/redis/redis.6380.conf
port 6380 # 将端口更改为6380
slaveof 127.0.0.1 6379 # 指定master ip port
验证
启动服务
[root@localhost redis]# redis-server /usr/local/redis/redis.conf # 启动master
[root@localhost redis]# redis-server /usr/local/redis/redis.6380.conf # 启动slave
查看Master状态
[liubo@localhost ~]$ redis-cli -p 6379
127.0.0.1:6379> info
# Server
……
# Clients
……
# Memory
……
# Persistence
……
# Stats
……
# Replication # 关注此区域
role:master # 当前角色,master
connected_slaves:1 # 已连接slave:1个
slave0:ip=127.0.0.1,port=6380,state=online,offset=56,lag=1 # slave0信息
master_replid:7e3b0e1accd31abaf58177160685d51952ea1e90
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:56
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:56
# CPU
……
# Cluster
……
查看Slave状态
[liubo@localhost ~]$ redis-cli -p 6380
127.0.0.1:6379> info
# Server
……
# Clients
……
# Memory
……
# Persistence
……
# Stats
……
# Replication # 关注此区域
role:slave # 当前角色,slave
master_host:127.0.0.1 # master相关信息
master_port:6379
master_link_status:up # 连接master状态
master_last_io_seconds_ago:4
master_sync_in_progress:0
slave_repl_offset:84
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:7e3b0e1accd31abaf58177160685d51952ea1e90
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:84
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:84
# CPU
……
# Cluster
……
常见问题
slave info 显示 master_link_status:down
- vim /usr/local/redis/redis.6380.conf
daemonize no # 关闭后台运行,方便查看报错信息
# daemonize yes
- 查看报错处理问题
本作品采用《CC 协议》,转载必须注明作者和本文链接