问题描述
我目前在本地开发环境 Ubuntu 20.04 中运行 Redis-server。每次打开台式计算机时,我总是使用这个 Redis-server --daemonize yes
来启动 Redis 服务器。有没有办法让它在台式电脑开机时自动启动?
解决方法
不确定 redis,我以为它已经作为服务安装了。一般来说,您可以使用 systemd。类似于以下内容:
cat << EOF > /etc/systemd/system/redis.service
[Unit]
Description=Start Redis Application
After=syslog.target
After=network.target[Service]
User=root
Type=simple
[Service]
WorkingDirectory=/root/
ExecStart=Redis-server --daemonize yes
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=redis
[Install]
WantedBy=multi-user.target
EOF
,
我使用官方 redis 文档 https://redis.io/topics/quickstart 通过更正确地安装 Redis 修复了它。
步骤如下:
以下说明可用于在基于 Debian 或 Ubuntu 的发行版中使用 Redis 2.4 附带的 init 脚本执行正确安装。
假设您已经在 /usr/local/bin 下复制了 redis-server 和 redis-cli 可执行文件。
1.创建一个用于存储 Redis 配置文件和数据的目录:
- sudo mkdir /etc/redis
- sudo mkdir /var/redis
2.将您将在 Redis 发行版中的 utils 目录下找到的 init 脚本复制到 /etc/init.d 中。我们建议使用运行此 Redis 实例的端口的名称来调用它。例如:
- sudo cp utils/redis_init_script /etc/init.d/redis_6379
3.编辑初始化脚本。
- sudo vi /etc/init.d/redis_6379
确保根据您使用的端口修改 REDISPORT。 pid 文件路径和配置文件名都取决于端口号。
4.使用端口号作为名称将您在Redis发行版根目录中找到的模板配置文件复制到/etc/redis/中,例如:
- sudo cp redis.conf /etc/redis/6379.conf
5.在 /var/redis 中创建一个目录,作为此 Redis 实例的数据和工作目录:
- sudo mkdir /var/redis/6379
6.编辑配置文件,确保执行以下更改:
- 将 daemonize 设置为 yes(默认设置为 no)。
- 将 pidfile 设置为 /var/run/redis_6379.pid(根据需要修改端口)。
- 相应地更改端口。在我们的示例中,不需要它,因为默认端口已经是 6379。
- 设置您的首选日志级别。
- 将日志文件设置为 /var/log/redis_6379.log
- 将目录设置为 /var/redis/6379(非常重要的一步!)
7.最后,使用以下命令将新的 Redis init 脚本添加到所有默认运行级别:
- sudo update-rc.d redis_6379 默认值
8.你完成了!现在您可以尝试使用以下命令运行您的实例:
- sudo /etc/init.d/redis_6379 start
确保一切正常:
- 尝试使用 redis-cli ping 您的实例。
- 使用 redis-cli save 进行测试保存并检查转储文件是否 - 正确存储到 /var/redis/6379/(您应该找到一个名为 dump.rdb 的文件).
- 检查您的 Redis 实例是否正确记录到日志文件中。
- 如果它是一台可以毫无问题地试用的新机器,请确保在重新启动后一切仍然正常。