ECS搭建2.8版本的redis

要在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

解释

  1. [Unit]

    • Description:简单描述服务的用途。
    • After:指定服务应在网络服务启动后启动。
  2. [Service]

    • UserGroup:指定服务应以哪个用户和组身份运行,确保正确的权限控制。
    • 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文件。你可以使用 chownchmod 命令来调整文件权限。例如:

    bash 复制代码
    sudo 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中,并进行有效的管理。如果在实际操作中仍然遇到任何问题,可以查看相关的日志文件以获取更多的错误信息。

相关推荐
superman超哥10 分钟前
04 深入 Oracle 并发世界:MVCC、锁、闩锁、事务隔离与并发性能优化的探索
数据库·oracle·性能优化·dba
minihuabei15 分钟前
linux centos 安装redis
linux·redis·centos
engchina1 小时前
Neo4j 和 Python 初学者指南:如何使用可选关系匹配优化 Cypher 查询
数据库·python·neo4j
engchina1 小时前
使用 Cypher 查询语言在 Neo4j 中查找最短路径
数据库·neo4j
尘浮生1 小时前
Java项目实战II基于Spring Boot的光影视频平台(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·后端·maven·intellij-idea
威哥爱编程1 小时前
SQL Server 数据太多如何优化
数据库·sql·sqlserver
小华同学ai1 小时前
AJ-Report:一款开源且非常强大的数据可视化大屏和报表工具
数据库·信息可视化·开源
Acrelhuang2 小时前
安科瑞5G基站直流叠光监控系统-安科瑞黄安南
大数据·数据库·数据仓库·物联网
十叶知秋2 小时前
【jmeter】jmeter的线程组功能的详细介绍
数据库·jmeter·性能测试
monkey_meng2 小时前
【Rust中多线程同步机制】
开发语言·redis·后端·rust