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

获取安装文件

[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 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!