要在ECS(Elastic Compute Service)上手动搭建Redis 2.8版本,你可以按照以下步骤操作:
步骤1:更新系统和安装依赖
首先,登录到你的ECS实例,确保系统是最新的并安装必要的依赖包:
bash
sudo yum update -y # 若使用的是基于RHEL/CentOS的系统
sudo apt-get update # 若使用的是基于Debian/Ubuntu的系统
sudo yum groupinstall "Development Tools" -y # RHEL/CentOS
sudo apt-get install build-essential -y # Debian/Ubuntu
步骤2:下载Redis 2.8版本的源码
进入工作目录并下载Redis 2.8的源码包:
bash
cd /usr/local/src
wget http://download.redis.io/releases/redis-2.8.24.tar.gz
步骤3:解压并编译源码
解压下载的源码包并编译:
bash
tar zxvf redis-2.8.24.tar.gz
cd redis-2.8.24
make
步骤4:安装Redis
将编译完成的Redis安装到你的系统中:
bash
sudo make install
步骤5:配置Redis
为Redis创建一个配置文件和工作目录:
bash
sudo mkdir /etc/redis
sudo mkdir /var/redis/6379
sudo cp redis.conf /etc/redis/6379.conf
编辑配置文件以适应你的需求:
bash
sudo vi /etc/redis/6379.conf
在配置文件中,可以根据需要修改以下几个重要配置:
daemonize yes
让Redis以守护进程方式运行pidfile /var/run/redis_6379.pid
设置PID文件路径port 6379
设置监听端口dir /var/redis/6379
设置数据库的工作目录
步骤6:创建启动脚本
为了方便管理Redis服务,可以创建一个启动脚本:
bash
sudo vi /etc/init.d/redis_6379
在脚本中写入以下内容:
bash
#!/bin/sh
# Redis init script
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
CONF="/etc/redis/${REDISPORT}.conf"
PASSWD=`grep -oP '(?<=requirepass ).*' $CONF`
PIDFILE=/var/run/redis_${REDISPORT}.pid
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$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 -a "$PASSWD" shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis_6379 {start|stop|restart|force-reload}" >&2
exit 1
esac
步骤7:启动Redis服务
使用启动脚本来启动Redis服务:
bash
sudo /etc/init.d/redis_6379 start
步骤8:设置Redis开机自启
将Redis服务添加到系统服务列表中,使其开机时自动启动:
bash
sudo chkconfig --add redis_6379
sudo chkconfig --level 345 redis_6379 on
到这里,你已经成功在ECS实例上手动搭建了Redis 2.8版本。你可以通过以下命令来验证Redis服务是否工作正常:
bash
redis-cli ping
如果返回 PONG
,则表示Redis正在正常运行。
加入到system里面进行管理:
vim /etc/systemd/system/redis.service
bash
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/6379.conf
ExecStop=/usr/local/bin/redis-cli -a 'Redis@123' -p 6379 shutdown
Restart=always
PIDFile=/var/run/redis_6379.pid
ExecStartPost=/bin/sh -c 'echo $MAINPID > /var/run/redis_6379.pid'
[Install]
WantedBy=multi-user.target
解释
-
[Unit]
Description
:简单描述服务的用途。After
:指定服务应在网络服务启动后启动。
-
[Service]
User
和Group
:指定服务应以哪个用户和组身份运行,确保正确的权限控制。ExecStart
:启动Redis服务器的命令,使用其配置文件。ExecStop
:停止Redis服务器的命令,注意增加了-p 6379
以指定端口,如果你的Redis服务器运行在不同端口,请调整这个参数。Restart
:指定服务崩溃或意外停止时自动重启。PIDFile
:指定Redis进程的PID文件路径。ExecStartPost
:在ExecStart
之后执行一个命令,这里用来写入Redis进程的PID到指定的PID文件中。
刷新 systemd 配置并启动服务
在修改完 redis.service
文件后,记得重新加载 systemd 配置并启动服务:
bash
sudo systemctl daemon-reload
sudo systemctl enable redis.service
sudo systemctl start redis.service
检查服务状态
使用以下命令检查Redis服务的状态,确保其正常运行:
bash
sudo systemctl status redis.service -l
其他注意事项
-
权限检查 :确保运行Redis的用户有权限读取和写入配置文件和PID文件。你可以使用
chown
和chmod
命令来调整文件权限。例如:bashsudo chown redis:redis /etc/redis/6379.conf sudo chown redis:redis /var/run/redis_6379.pid sudo chmod 640 /etc/redis/6379.conf sudo chmod 640 /var/run/redis_6379.pid
-
缺点:如果你的环境中有多个Redis实例,请确保每个实例的配置文件、端口号、PID文件等都是唯一的。
通过上述步骤和提示,你应该可以将Redis服务成功地集成到systemd中,并进行有效的管理。如果在实际操作中仍然遇到任何问题,可以查看相关的日志文件以获取更多的错误信息。