Redis篇之redis服务的启动方式总结

本文详细介绍了Redis服务的启动方法,包括直接启动、通过配置文件启动、指定端口连接及设置开机自启动的步骤。同时,提供了启动脚本的创建和配置,以及如何处理启动脚本不支持chkconfig的问题。最后,还简单提到了Redis客户端的启动和退出操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们部署好redis服务后,接下来就是redis的启动。
总结如下:
redis服务的启动方式
1、直接启动
进入redis根目录下,在bin目录中找到redis-server,执行如下命令:

./redis-server &

注意:如果加上 ‘&’ ,使得redis以后台程序方式运行
2、通过指定的配置文件启动
同样,在redis的根目录下进行启动,只不过这次启动命令中需要指定对应的配置文件。

#首先需要找到自己指定的配置文件,然后启动服务时在后面添加即可
./redis-server /etc/redis/redis.conf

3、当在redis的配置文件中更改了端口port或者对应不同主机时,则通过redis-cli客户端连接时,也需要指定端口,例如:

./redis-cli -p 6370 -h xxx.xxx.xxx.xxx

4、使用redis启动脚本设置开机自启动
(一)创建启动脚本redis_ctl.sh,代码如下:

#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
 
#redis服务器监听的端口
REDISPORT=6379
 
#服务端所处位置
EXEC=/usr/local/bin/redis-server
 
#客户端位置
CLIEXEC=/usr/local/bin/redis-cli
 
#redis的PID文件位置,需要修改
PIDFILE=/var/run/redis_${REDISPORT}.pid
 
#redis的配置文件位置,需将${REDISPORT}修改为文件名
CONF="/etc/redis/${REDISPORT}.conf"
 
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 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

(二)根据启动脚本,将修改好的配置文件复制到指定目录下,用root用户执行:

mkdir /etc/redis
cp reids.conf /etc/redis/redis.conf

(三)将启动脚本复制到/etc/init.d 目录下,并使得启动脚本名为redisd。
注:这里一般作为习惯,通常以d结尾的表示后台自启动服务。

cp redis_ctl.sh /etc/init.d/redisd

(四)设置开机自启动,配置开机自启动

chkconfig redisd on

如果报错如下:
service redisd does not support chkconfig
解决方法,在启动脚本开头添加注释修改运行级别

#!/bin/sh
# chkconfig:   2345 90 10

然后进行如下设置:

#设置为开机自启动服务器
chkconfig redisd on
#打开服务
systemctl start redisd
#关闭服务
systemctl stop redisd

redis client端启动方式
client端:

#启动方式:
#进入redis根目录下
./redis-cli

#退出
./redis-cli shutdown
<think>嗯,用户问的是Redis在Windows下的两个配置文件区别:redis.windows-service.conf和redis.windows.conf。这个问题很具体,看来用户正在部署Windows版Redis,需要明确文件用途。 从引用内容看,用户已经查阅过基础安装文档[^1][^2],可能遇到了实际配置困惑。这两个文件名确实容易混淆,需要从服务部署和普通启动两个场景来区分。 先看核心差异点:服务配置文件是专为Windows服务设计的。引用[1]提到安装服务时需指定redis.windows-service.conf,说明它被服务管理器调用。而普通配置文件用于命令行启动,如引用[2]演示的terminal操作场景。 功能上,服务配置文件多了系统集成参数。比如日志输出需适配Windows事件系统(引用[1]的--loglevel verbose示例),普通配置文件则默认输出到控制台。安全策略也不同,服务运行时可能需配置账户权限(这点引用未提及,但属于常识性差异)。 技术细节上要注意端口冲突问题。如果同时存在服务实例和命令行实例,两者用相同配置文件会导致端口重复(引用[2]的port 6379配置)。用户可能没意识到这是两个独立进程,需要明确警告。 用户还隐含了操作流程的疑问。引用[1]的服务安装命令和引用[2]的配置文件修改需要串联起来说明:先改配置再安装服务,否则修改不生效。这个实践细节文档没强调,但实际部署常踩坑。 最后补充个冷知识:早期Redis Windows版这两个文件内容完全一致,现在服务配置文件增加了Service开头的专属参数(如service-runid)。不过用户不必深究,知道用途区分更重要。</think>在Windows环境下,`redis.windows-service.conf` 和 `redis.windows.conf` 的核心区别在于**使用场景和默认配置优化**,而非功能差异。以下是具体对比: --- ### **1. 核心区别** | **配置文件** | **主要用途** | **关键特性** | |--------------------------|------------------------------------------|-----------------------------------------------------------------------------| | **`redis.windows.conf`** | **命令行启动** (`redis-server.exe` 直接运行) | - 默认日志输出到控制台(标准输出)<br>- 适合开发调试、临时测试场景 | | **`redis.windows-service.conf`** | **Windows服务安装** | - 日志默认写入Windows事件日志系统<br>- 包含服务运行专用参数(如`service-runid`)<br>- 优化后台守护进程行为 | --- ### **2. 详细差异说明** #### **(1) 日志输出配置** ```conf # redis.windows.conf (默认) logfile stdout # 日志输出到控制台 # redis.windows-service.conf (默认) logfile "" # 禁用文件日志,改用Windows事件日志 syslog-enabled yes # 启用系统日志集成 ``` > 服务版配置文件优先适配Windows服务管理器的日志收集机制[^1]。 #### **(2) 服务专用参数** `redis.windows-service.conf` 包含服务运行所需参数: ```conf # 服务唯一标识(仅服务版配置) service-runid auto-generated-id # 服务启动类型优化 daemonize no # Windows服务模式下强制为no ``` #### **(3) 内存管理优化** 服务版默认启用更激进的内存回收策略,避免长期运行的内存泄漏: ```conf # redis.windows-service.conf 特有 maxmemory-policy allkeys-lru # 默认LRU淘汰策略 ``` --- ### **3. 实践建议** - **部署为服务时**: 必须使用 `redis.windows-service.conf`,否则会导致日志无法捕获或服务意外退出[^1]: ```cmd redis-server --service-install redis.windows-service.conf --loglevel verbose ``` - **临时调试时**: 使用 `redis.windows.conf` 可直接查看控制台输出: ```cmd redis-server redis.windows.conf ``` - **配置同步**: 两者可互相复用配置项(如`bind`/`port`/`timeout`[^2]),但**服务版需额外检查日志和内存参数**。 --- ### **注意事项** - **避免配置冲突**:若同时存在服务实例和命令行实例,需确保`port`不同(如6379和6380)[^2]。 - **删除大Key风险**:无论何种配置,执行`DEL`命令时若对象过大均会阻塞服务[^3],生产环境建议用`UNLINK`替代。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值