今日分享redis设置开机自启动。

Redis是一款开源的内存数据结构存储系统,它可以用作数据库、缓存和消息代理,在许多应用场景中,Redis都发挥着重要的作用,有时候我们希望在系统启动时自动运行Redis,以便及时处理一些初始化任务或者提供实时的数据服务,本文将介绍如何设置Redis开机自启动。

一、检查Redis是否已经安装

在设置Redis开机自启动之前,我们需要确保Redis已经正确安装并配置好,可以通过以下命令检查Redis是否已经安装:

今日分享redis设置开机自启动。

redis-cli --version

如果显示出Redis的版本信息,说明Redis已经安装成功,如果没有安装成功,请参考Redis官方文档进行安装:

二、创建Redis配置文件

为了让Redis在开机时自动启动,我们需要创建一个配置文件,配置文件通常位于`/etc/redis/redis.conf`,如果该文件不存在,可以手动创建一个,在配置文件中,我们需要设置以下几个参数:

1. `daemonize no`:这个参数表示让Redis以非守护进程方式运行,这样在后台运行时不会影响到系统的正常运行。

2. `pidfile /var/run/redis_6379.pid`:这个参数表示设置Redis的进程ID文件路径,当Redis作为守护进程运行时,需要使用这个PID文件来管理进程。

今日分享redis设置开机自启动。

3. `port 6379`:这个参数表示设置Redis监听的端口号,默认为6379,可以根据实际需求修改端口号。

4. `bind 127.0.0.1`:这个参数表示设置Redis只能监听本地回环地址,不能接受外部连接,如果需要让其他设备访问Redis,可以将此参数注释掉或者修改为相应的IP地址。

5. `loglevel notice`:这个参数表示设置Redis的日志级别为notice,这样只会输出警告和错误信息,方便排查问题。

三、创建开机自启动脚本

为了让Redis在开机时自动启动,我们需要创建一个开机自启动脚本,在`/etc/init.d`目录下创建一个名为`redis_6379`的脚本文件:

今日分享redis设置开机自启动。

sudo touch /etc/init.d/redis_6379
sudo chmod +x /etc/init.d/redis_6379

接下来,编辑`redis_6379`脚本文件,添加以下内容:

#!/bin/sh
### BEGIN INIT INFO
# Provides:         redis_6379
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start Redis on boot
# Description:       Enable service provided by redis.service.
### END INIT INFO

case "$1" in
  start)
    echo "Starting Redis ..."
    /etc/init.d/redis-server start >> /var/log/redis_start.log 2>&1 & echo $! > /var/run/redis_6379.pid
    ;;
  stop)
    echo "Stopping Redis ..."
    /etc/init.d/redis-server stop >> /var/log/redis_stop.log 2>&1 & kill $(cat /var/run/redis_6379.pid) && echo $? > /var/run/redundant_shutdown_status.txt || echo "failed to stop Redis"
    rm -f /var/run/redis_6379.pid
    ;;
  *)
    echo "Usage: $0 start|stop" >&2
    exit 1
    ;;
esac
exit 0

保存文件后,给脚本文件添加可执行权限:

sudo chmod +x /etc/init.d/redis_6379

四、创建开机自启动链接

为了让系统在启动时自动加载我们的开机自启动脚本,我们需要创建一个链接,在`/etc/rc.local`文件中添加以下内容:

#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          rc-local update script (required for systemctl)
# Required-Start:     $remote_fs $syslog $network $named $time $syslogd $tmpfs $tcpdump $udpdump icmp $rtcwake $crond $syslogd $maildrop $messagebus *
# Required-Stop:     $remote_fs $syslog $network $named $time $syslogd $tmpfs $tcpdump $udpdump icmp $rtcwake $crond $syslogd $maildrop $messagebus *
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Run custom scripts at startup before normal process startup.
# Description:       This script is executed at the end of each multiuser runlevel.
### END INIT INFO
if [ "$RUNLEVEL" == "0" ]; then # After this level, all processes not listed below will be stopped.${PATH=~^(?::/usr/localbin:)${PATH}} 
       [ "$TERM" != "dumb" ] && exec sudo su --login --command "${PATH=~^(?::/usr/localbin:)${PATH}} date; 
               $HOME/apps/redis_6379 start" &>> "$HOME"/apps/logs/redis_startup.log & disown # Add any command specific options above this line if needed.${PATH=~^(?::/usr/localbin:)${PATH}} 
       [ "$TERM" = "dumb" ] && exec sh <<EOF # Otherwise, do nothing and continue with normal startup of shell or other process.${PATH=~^(?::/usr/localbin:)${PATH}} 
           while true; do sleep 10; doneEOF &>> "$HOME"/apps/logs/redis_startup.log & disown # This ensures that the container does not get locked (in case of CPU or memory constraints).${PATH=~^(?::/usr/localbin:)${PATH}} 
fi # End script execution if it runs successfully (success means that the last command executed returned a zero exit code).${PATH=~^(?::/usr/localbin:)${PATH}} 
exit 0 # Exit status of the script (0 indicates success).${PATH=~^(?::/usr/localbin:)${PATH}} 

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/427727.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
夏雨夏雨订阅用户
上一篇 2024年6月18日 13:03
下一篇 2024年6月18日 13:03

相关推荐

  • 我来说说redis的持久化方式怎么使用。

    Redis是一个高性能的内存数据库,它支持多种数据结构,如字符串、列表、集合、散列等,为了保证数据的持久化,Redis提供了两种持久化方式:RDB(Redis DataBase)和AOF(Append Only File),本文将详细介绍这两种…

    2024年6月13日
    00
  • mmseg4j-1.9 solr4的bug怎么处理「」。

    处理mmseg4j-1.9和solr4的bug需要遵循以下步骤: 1. 确定问题:您需要确定您正在面对的具体问题,这可能是一个错误消息,或者是一个特定的行为不符合预期,无论哪种情况,都需要详细记录下问题的细节,包括错误消息…

    2024年6月13日
    01
  • PHP中使用Redis实现异地备份。

    随着互联网技术的不断发展和应用的广泛,数据备份和恢复逐渐变得越来越重要。在开发过程中,数据的备份和恢复也是非常重要的一步。而Redis作为一个内存型数据库,具有快速、高效、可靠等优点,在PHP开发中得到了广…

    2023年5月21日
    01
  • 教你微信设置拒收,微信拒收在哪里设置的。

    如果您想在微信中设置拒收消息,可以按照以下步骤进行: 1. 打开微信,进入“我”的页面。 2. 点击右上角的“设置”按钮。 3. 在设置页面中,点击“隐私”选项。 4. 在隐私页面中,找到“拒收陌生人消息”选项,点击进入。 …

    2024年6月15日
    02
  • 分享手机桌面上红点怎么恢复原样。

    手机桌面上的红点通常代表应用图标上的未读消息或通知数量,这些红点是许多智能手机系统中设计用来提示用户有新消息或更新的一种视觉元素,有时候这些红点可能会由于系统错误、缓存问题或是应用故障而异常显示,假…

    2024年6月12日
    012
  • 聊聊redis连接池的作用。

    Redis连接池的主要作用是为了提高性能和效率。它避免了频繁地创建和断开网络通信,因为这个过程会占用大量的时间。连接池技术使得多个客户端可以共享同一个Redis服务器的连接,当有新的客户端需要连接时,只需从连…

    2024年7月16日
    00
  • PHP中使用Redis的hyperLogLog计数器

    PHP是一种常用的服务器端编程语言,常常被用于开发Web应用程序。而Redis是一个开源的内存数据库,被广泛使用于缓存、分布式锁等场景。Redis有一个特殊的数据结构——HyperLogLog,可以进行基数估计。在某些场景下,我…

    2023年5月19日
    09
  • Redis和PHP的速度对比。

    Redis是一款高性能的缓存数据库,被广泛地用于提升Web应用程序的性能。它以其高速读取和写入数据的能力,以及良好的可扩展性而受到Web开发人员的青睐。而PHP是一门流行的Web编程语言,以其易学易用、开发效率高等特…

    2023年5月21日
    03

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息