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

相关推荐
打鱼又晒网11 分钟前
【MySQL】数据库精细化讲解:内置函数知识穿透与深度学习解析
数据库·mysql
大白要努力!16 分钟前
android 使用SQLiteOpenHelper 如何优化数据库的性能
android·数据库·oracle
tatasix1 小时前
MySQL UPDATE语句执行链路解析
数据库·mysql
秋意钟1 小时前
缓存雪崩、缓存穿透【Redis】
redis
南城花随雪。1 小时前
硬盘(HDD)与固态硬盘(SSD)详细解读
数据库
儿时可乖了1 小时前
使用 Java 操作 SQLite 数据库
java·数据库·sqlite
懒是一种态度1 小时前
Golang 调用 mongodb 的函数
数据库·mongodb·golang
简 洁 冬冬1 小时前
046 购物车
redis·购物车
天海华兮1 小时前
mysql 去重 补全 取出重复 变量 函数 和存储过程
数据库·mysql
雯0609~2 小时前
网页F12:缓存的使用(设值、取值、删除)
前端·缓存