前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Redis5.x单机服务搭建手记

Redis5.x单机服务搭建手记

作者头像
Throwable
发布于 2020-06-23 08:23:46
发布于 2020-06-23 08:23:46
46900
代码可运行
举报
文章被收录于专栏:Throwable's BlogThrowable's Blog
运行总次数:0
代码可运行

Redis5.x之后,单机、哨兵、集群搭建的难度已经简化。鉴于目前看到太多文章都是复制粘贴以往一些3.x版本的一些内容,所以打算基于当前Redis的最新版本做一次单机、哨兵和集群的搭建,记录一下过程步骤和遇到的问题。编写本文的时间是2019年10月5日(国庆假期…),当前Redis的最新版本为5.0.5。操作系统用的是虚拟机里面安装的CentOS 7

单机版安装和启动

编译过程依赖于gcc,记得先提前安装gcc

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install -y gcc

预先建一个目录/data/redis,下载并且解压安装包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir /data/redis
cd /data/redis
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar zxvf redis-5.0.5.tar.gz

接着进入解压后的目录/data/redis/redis-5.0.5,进行编译:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /data/redis/redis-5.0.5
# 这里的MALLOC=libc不能少
make MALLOC=libc

编译完成之后,可以看到类似如下的日志:

可选安装项:可以使用下面的命令把/data/redis/redis-5.0.5/src目录下的编译完成后的文件添加到系统的/usr/local/bin目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /data/redis/redis-5.0.5/src && make install

编译完成之后,注意/data/redis/redis-5.0.5/src目录下的几个重要的可执行脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
......
redis-benchmark - benchmark测试相关
redis-check-aof - AOE相关
redis-check-rdb - RDB相关
redis-cli - 命令行提示符入口
redis-sentinel - 哨兵相关
redis-server - Redis服务端指令
redis-trib.rb - Ruby脚本,集群相关
......

单机启动需要使用redis-server脚本,它会读取/data/redis/redis-5.0.5目录下的redis.conf配置文件,在/data/redis/redis-5.0.5目录下有两个样板配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
redis.conf - 单机配置文件
sentinel.conf - 哨兵配置文件

还有一点需要重点提示一下:/data/redis/redis-5.0.5/utils目录下自带了一些十分有用的Redis服务安装、管理、集群创建等等的相关脚本,有使用场景的时候可以直接从里面拿出来使用

  • 非后台启动Redis服务:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 使用默认配置
/data/redis/redis-5.0.5/src/redis-server

# 已经进入了 /data/redis/redis-5.0.5/src目录下
./redis-server

# 或者指定配置如下
/data/redis/redis-5.0.5/src/redis-server /配置目录/你的配置文件.conf

# 已经进入了 /data/redis/redis-5.0.5/src目录下
./redis-server /配置目录/你的配置文件.conf

非后台启动Redis服务,窗口需要一直打开,需要退出进程则按Ctrl + C,显然不是太方便。

  • 后台启动Redis服务:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 修改redis.conf文件的daemonize配置,笔者修改和使用/data/redis/redis-5.0.5/redis.conf
把daemonize no 修改为 daemonize yes保存
# 启动Redis服务
./redis-server /data/redis/redis-5.0.5/redis.conf
  • 查看Redis服务进程信息:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ps -ef | grep redis
  • 强杀Redis服务进程
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 一般情况下,请勿使用kill -9,否则有可能造成数据丢失
kill -9 5365
  • 安装Redis作为系统服务(可以使用系统命令管理,设置自启动等等):
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 注意:这里要先把../redis-5.0.5/src目录下的文件加到/usr/local/bin目录,如果已经添加过可以忽略这一步
cd /data/redis/redis-5.0.5/src/ && make install

# 预先建立/etc/redis目录
mkdir /etc/redis

# 依赖redis_init_script脚本,里面会读取/etc/redis/${PORT}.conf配置,需要提前建好
cp /data/redis/redis-5.0.5/utils/redis_init_script /etc/init.d/redis-doge

# 拷贝配置文件
cp /data/redis/redis-5.0.5/redis.conf /etc/redis/6379.conf

# 配置系统应用
cd /etc/init.d
chkconfig redis-doge on

这里的redis-doge命名是笔者随意自定义,在个人开发环境可以这样做,测试或者生产环境尽量规范命名为redis或者redisd。做好上面的设置之后,就可以用系统服务的形式启动和关闭Redis服务:

配置文件redis.conf的常用配置项

解压目录下的样板配置文件redis.conf里面已经列举了Redis服务启动配置支持的全量配置项,里面的内容太多,这里暂时挑几个相对重要和常用的项做分析:

配置项

描述

默认值

port

Redis服务的启动端口

6379

daemoniz

Redis服务是否后台运行

no

pidfile

Redis服务PID寄存文件

/var/run/redis_6379.pid

logfile

Redis服务输出日志文件

"",指向/dev/null

dbfilename

Redis服务数据库dump文件的名称

dump.rdb

dir

Redis服务数据库dump文件的输出目录,也就是工作目录

./,也就是当前目录

appendonly

是否启用AOF

no

appendfilename

启用AOF后输出的文件名称

appendonly.aof

appendfsync

AOF策略

everysec

requirepass

Redis服务数访问认证密码

-

还有两个比较难理解的bindprotected-mode配置。

  • bind:默认值为127.0.0.1

bind配置的注释比较长,这里翻译和浓缩一下:默认情况下,如果没有指定bind配置,则Redis服务监听来自服务器上所有可用网络接口(Network Interface 的连接。可以使用bind配置指令来监听一个或多个选定的网络接口,在bind后拼接一个或多个IP地址即可,如bind 127.0.0.1 192.168.56.101bind参数配置里面绑定的是网络接口而不是具体的外部IP地址,这一点很重要,不能错误认为这个配置项的功能类似于防护墙或者白名单提供的功能127.0.0.1其实对应的网络接口是本地的回环网卡,下面是笔者虚拟机的网卡信息:

  • protected-mode:默认值为yes

protected-mode配置表示保护模式是否开启,指定为yes表示为开启保护模式,指定为no表示关闭。开启保护模式之后,如果bind配置项没有绑定一些列的地址并且没有配置认证密码requirepass,那么Redis服务只允许通过本地回环地址127.0.0.1(IPV4)::1(IPV6)访问。

在个人开发环境中,为了方便起见,可以不设置密码,去掉网络限制和保护模式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
protected-mode no
bind 0.0.0.0
  • 上面的配置切勿在生产环境使用。
  • 上面的配置切勿在生产环境使用。
  • 上面的配置切勿在生产环境使用。

小结

如果属性Linux的相关命令,Redis单机服务搭建是比较简单的。Redis服务的配置文件中配置项极多,一时间不可能全部列出,但是常用的配置必须清楚其的作用。下一篇文章会详细介绍Redis5.x的哨兵搭建过程以及遇到的问题。

(本文完 c-1-d e-a-20191005)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年10月6日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验