在CentOS 6.8这样的老旧系统上部署服务,虽然挑战重重,但通过正确的步骤依然可以稳定运行,Redis作为一款高性能的键值对数据库,因其轻量和高效而被广泛应用,本文将详细介绍如何在CentOS 6.8系统上,通过源码编译的方式安装和配置Redis,确保过程的严谨性和部署的稳定性。
环境准备与依赖安装
在开始编译安装之前,必须确保系统具备编译Redis源码所需的基础工具和环境,CentOS 6.8的官方yum源已经停止维护,但通常基础开发工具包仍然可用,我们需要安装gcc
(C语言编译器)、make
(构建工具)以及tcl
(Redis测试套件依赖)。
打开终端,以root用户或具有sudo权限的用户执行以下命令:
yum groupinstall -y "Development Tools" yum install -y tcl
第一条命令会安装一个包含gcc
, make
等在内的开发工具组,第二条命令则安装tcl
,这一步是后续所有编译工作的基础,不可或缺。
下载与编译Redis源码
由于CentOS 6.8的yum源中可能没有Redis,或者版本非常陈旧,我们强烈推荐从Redis官方网站下载最新的稳定版源码进行编译,这里以Redis 4.0.14版本为例,这是一个相对成熟且对旧系统兼容性较好的版本。
下载源码包
使用wget
命令下载Redis源码压缩包。wget http://download.redis.io/releases/redis-4.0.14.tar.gz
解压并进入目录
下载完成后,使用tar
命令解压,并切换到解压后的目录。tar -xzf redis-4.0.14.tar.gz cd redis-4.0.14
编译与测试
在源码目录中,执行make
命令进行编译,编译过程会根据当前系统环境生成可执行文件。make
编译过程如果没有报错,强烈建议运行测试套件来验证编译的正确性,这可以提前发现潜在问题。
make test
测试过程可能会持续几分钟,如果所有测试都通过,说明编译的Redis服务是健康可靠的。
安装到系统
测试通过后,执行make install
命令,此命令会将编译好的Redis可执行文件(如redis-server
,redis-cli
等)复制到/usr/local/bin
目录下,这样系统就可以在任何路径下直接调用这些命令。make install
配置Redis服务
仅仅将可执行文件安装到系统还不够,我们需要将其配置为一个可以随系统启动、后台运行的服务,这包括创建配置文件、数据目录、日志目录,以及设置合适的权限。
创建相关目录
为了更好地管理Redis,我们创建专门的目录来存放配置文件、数据和日志。mkdir -p /etc/redis mkdir -p /var/lib/redis mkdir -p /var/log/redis
复制并修改配置文件
将源码目录中的默认配置文件模板复制到我们刚创建的配置目录中。cp redis.conf /etc/redis/6379.conf
使用
vi
或nano
等编辑器打开/etc/redis/6379.conf
文件,进行以下关键配置的修改:配置项 默认值 建议修改值 说明 daemonize
no
yes
允许Redis在后台作为守护进程运行 pidfile
/var/run/redis_6379.pid
/var/run/redis/redis.pid
指定PID文件存放位置 port
6379
6379
Redis监听的端口,可根据需要修改 bind
0.0.1
0.0.1
绑定的IP地址,出于安全考虑,建议仅绑定本地回环地址 logfile
/var/log/redis/redis-server.log
指定日志文件路径 dir
/var/lib/redis
指定Redis数据库快照(RDB文件)的存放目录 protected-mode
yes
yes
启用保护模式,增强安全性 请确保
/var/run/redis/
目录存在,或者在启动脚本中创建它。
创建系统用户及启动脚本
为了安全起见,Redis服务不应该以root用户身份运行,我们将创建一个专用的redis
用户,并为其编写一个CentOS 6风格的init.d
启动脚本。
创建redis用户
useradd -s /sbin/nologin redis
并赋予该用户对相关目录的权限:
chown -R redis:redis /var/lib/redis chown -R redis:redis /var/log/redis
创建启动脚本
在/etc/init.d/
目录下创建一个名为redis
的文件。vi /etc/init.d/redis
粘贴到文件中:
#!/bin/sh # # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. # chkconfig: - 85 15 # description: Redis is a persistent key-value database REDISPORT=6379 EXEC=/usr/local/bin/redis-server CLIEXEC=/usr/local/bin/redis-cli PIDFILE=/var/run/redis/redis.pid CONF="/etc/redis/6379.conf" case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." mkdir -p /var/run/redis chown redis:redis /var/run/redis su - redis -c "$EXEC $CONF" fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;; esac
设置脚本权限并启用服务
赋予脚本可执行权限,并将其添加到系统服务中。chmod +x /etc/init.d/redis chkconfig --add redis chkconfig redis on
启动与验证
所有配置工作完成后,现在可以启动Redis服务了。
service redis start
启动后,可以通过以下几种方式验证Redis是否成功运行:
检查进程
ps aux | grep redis
应该能看到以
redis
用户身份运行的redis-server
进程。检查端口
netstat -tlnp | grep 6379
应该能看到Redis服务正在监听6379端口。
使用客户端连接测试
使用redis-cli
进行连接测试。redis-cli ping
如果服务正常,客户端会返回
PONG
。
至此,Redis已经成功在CentOS 6.8系统上以服务的形式安装并运行。
相关问答FAQs
问题1:为什么在CentOS 6.8上不推荐使用yum install redis
?
解答: 主要原因有两点,CentOS 6.8已经是一个非常古老的操作系统,其官方的yum源早已停止维护(End-of-Life),这意味着你很可能无法连接到默认的仓库,或者仓库中的软件包版本极其陈旧,存在安全漏洞和功能缺失,即使通过第三方EPEL源能找到Redis包,其版本也可能不是你需要的,且无法灵活定制编译选项,通过源码编译安装不仅能获得最新稳定版的Redis,还能根据服务器环境进行针对性优化,是更可靠、更专业的选择。
问题2:如何为刚安装的Redis设置访问密码?
解答: 为Redis设置密码是保障其安全性的重要一步,你需要修改Redis的配置文件,打开/etc/redis/6379.conf
文件,找到# requirepass foobared
这一行(通常是被注释掉的),去掉开头的,并将foobared
替换为你想要设置的强密码,
requirepass your_strong_password_here
修改完成后,保存文件并重启Redis服务使配置生效:
service redis restart
之后,当使用redis-cli
连接时,就需要使用-a
参数提供密码才能执行命令,否则会提示没有权限。
redis-cli -a your_strong_password_here ping
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复