Redis-server关闭自动保存功能

Redis数据残留引发的项目崩溃:解决与预防,
项目中Redis服务崩溃源于数据残留。解决方法包括在启动时清空缓存和禁用dump.rdp读取。非常规Redis使用导致配置文件难以访问,最终通过修改redis.windows.conf并移除dump文件解决问题。

问题起源

某次项目中用到了redis服务,触发了一些崩溃bug

问题定位时发现是由于redis服务中存在数据残留导致的。

探究为何redis服务中会有数据残留

redis服务中存在数据残留,残留原因为redis数据库自带的一种机制,主要为了防止服务器意外崩溃造成的数据丢失,所以在电脑因意外断电导致redis服务崩溃时(或其余意外关闭redis服务的操作),将产生dump.rdp文件用于在下次redis服务启动时读取前一次的数据配置。

本次问题解决需逆照该机制进行不让其读取前次配置。

解决方向:

  1. 在redis服务启动时,清除全部缓存数据 

  2. 关闭dump.rdp文件生成功能,不对其进行读取

经查询并多次尝试方向一:在redis服务启动时,清除全部缓存数据失败(本项目中对redis的调用非常规,已将redis嵌入项目之中,所以找不到大多数攻略中的redis.conf)

采取方向二:关闭dump.rdp文件生成功能,不对其进行读取

一、打开系统服务

二、找到redis路径

三、修改路径下redis.windows.conf文件并将原有的dump文件移除

至此大功告成,重启电脑或重启redis服务即可生效将不会再对rdp崩溃数据进行读取

在Ubuntu系统中,要设置Redis服务(redis-server)开机自动启动,可以通过创建系统服务脚本,并将其添加到系统的启动过程中来实现。以下是具体的步骤: 1. 创建Redis服务文件。首先,你需要创建一个新的服务文件`redis.service`,并将其放置在`/etc/systemd/system/`目录下。 ```bash sudo nano /etc/systemd/system/redis.service ``` 2. 编辑服务文件。在打开的编辑器中,输入以下内容,来定义Redis服务的行为: ```ini [Unit] Description=Redis In-Memory Data Store After=network.target [Service] Type=forking ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf ExecReload=/bin/kill -s HUP $MAINPID Restart=always [Install] WantedBy=multi-user.target ``` 请注意,路径`/usr/local/bin/redis-server`和配置文件`/etc/redis/redis.conf`需要根据你的实际安装路径和配置文件位置进行相应的修改。 3. 重新加载系统守护进程配置。保存关闭文件后,需要重新加载`systemd`的配置文件,以便识别新的服务文件。 ```bash sudo systemctl daemon-reload ``` 4. 启用Redis服务。现在你可以通过`systemctl`命令来启用Redis服务,使其在开机时自动启动: ```bash sudo systemctl enable redis.service ``` 5. 启动Redis服务。如果你想立即启动Redis服务,可以使用以下命令: ```bash sudo systemctl start redis.service ``` 6. 检查Redis服务状态。最后,检查Redis服务的状态以确认其是否正确启动: ```bash sudo systemctl status redis.service ``` 如果一切设置正确,Redis服务应该会在下次系统启动时自动启动,并且你也可以手动启动它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值