在Linux部署单机Redis完整过程

前言

本文以redis-6.2.5为例,讲述在 Linux 系统下单机 Redis 下载、编译、打包、安装为服务、启动和访问的整个过程。

安装环境为 Linux CentOS 64,本文用的 7.5 版本.

下载编译目录在当前目录soft/redis下,最终服务可执行程序在/opt/soft/redis6中。

准备工作

# 查看是否有文件下载工具
wget --help
# 如果没有则安装文件下载工具
yum install wget

# 查看是否有编译套件
gcc --help
# 如果没有就安装编译套件 GCC
yum install gcc

部署步骤

下载安装包并编译

echo "创建单独目录" > /dev/null
mkdir -p ~/soft/redis

echo "下载、解压安装包" > /dev/null
wget -P ~/soft/redis http://download.redis.io/releases/redis-6.2.5.tar.gz
tar -xf ~/soft/redis/redis-6.2.5.tar.gz -C ~/soft/redis/

echo "编译,成功后会在 ~/soft/redis/redis-6.2.5/src 下生成可执行程序" > /dev/null
make -C ~/soft/redis/redis-6.2.5

如果编译出现了问题,解决后需要执行下面命令清除之前编译结果,然后再一次执行编译命令

make -C ~/soft/redis/redis-6.2.5 distclean

安装并配置环境变量

echo "安装并指明路径,完成后可以看到目录 /opt/soft/redis6/bin 下生成了可执行程序" > /dev/null
make -C ~/soft/redis/redis-6.2.5 install PREFIX=/opt/soft/redis6

echo "追加REDIS_HOME环境变量" > /dev/null
echo '
export REDIS_HOME=/opt/soft/redis6
export PATH=$PATH:$REDIS_HOME/bin' >> /etc/profile

echo "使环境变量生效" > /dev/null
source /etc/profile

echo "查看Redis版本" > /dev/null
redis-server -v

编辑服务安装脚本

vim ~/soft/redis/redis-6.2.5/utils/install_server.sh

注释下面几行。

image-20210925235054310

使用脚本安装为服务

~/soft/redis/redis-6.2.5/utils/install_server.sh

中间会提示要输入端口、路径都可以一直回车使用默认的,最后创建成功会配置好开机启动,并启动这个服务实例。
配置多个服务的时候重复执行这个脚本,输入不同的端口号,路径都会根据端口号创建默认的。

image-20210926000223844

image-20210926000307634

启动/停止/查看状态

不同的服务需改端口号来执行

service redis_6379 start/stop/status

其他问题

远程连接不上

修改配置文件 /etc/redis/6379.conf,注释 bind 并 配置 protected-mode 为 no。

# bind 127.0.0.1 -::1

protected-mode no

停机失败

配置密码后使用命令 service redis_6379 stop 停止 Redis 失败,如下图:

在这里插入图片描述

查看服务脚本 /etc/init.d/redis_6379 可以发现,stop 是通过 redis-cli 调用 shutdown 来完成的,这种客户端停机方式需要提供密码。

image-20210925235605335

image-20210925235654014

我们只要编辑这个脚本,在停机那一行中加入密码参数就可以了。

$CLIEXEC -p $REDISPORT -a 密码 shutdown

但是它会提示你在命令行接口这样做不安全:

Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.

那就先通过 redis-cli 登录,再验证密码进行停机

在这里插入图片描述

各个目录之间关系

# 这个是解压后的目录,只有在安装新的组件或者不同端口的 Redis 服务才会需要它,后面服务启动跟它没关系
/root/soft/redis/redis-6.2.5
# 执行完安装脚本后这里生成了可执行脚本,所有服务启动都会用到,但它有一份就够了
/opt/soft/redis6/bin

# 每个 Redis 服务都会产生独立的以下几个文件/目录,不同服务相应端口号有区别
# 配置
/etc/redis/6379.conf
# 数据
/var/lib/redis/6379
# 日志
/var/log/redis_6379.log
# 服务启动脚本
/etc/init.d/redis_6379

参考说明文档

cat redis-6.2.5/README.md

参考链接

Redis 各发布版下载地址

Redis 中文网

posted @ 2023-04-05 16:19  我有八千部下  阅读(259)  评论(0编辑  收藏  举报