马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
redis 装好后直接敲 redis-server 是前台启动的,终端一关服务就死,也没法开机自启。正确做法是指定配置文件后台启动,再配一个 systemd 单元把它交给系统管。本文按「配置 → 后台启动 → 写 service → enable」四步走完。
一、先备份配置,再改成后台可跑
配置文件一般在安装目录的 redis.conf,第一步永远是先备份:
cp redis.conf redis.conf.bak
然后改 vim redis.conf,主要涉及这几处:
daemonize yes
logfile /var/log/redis/redis-server.log
dir /var/lib/redis
bind 127.0.0.1 ::1
requirepass 你的强密码
各条的作用:daemonize yes 让进程进后台(配合 systemd 时这一项建议保留 yes,否则 systemd 会以为服务没起来);logfile 指定日志 落点,不写的话后台进程你看不到任何输出;dir 是持久化文件(dump.rdb)的存放目录;requirepass 强烈建议设,redis 没密码还裸奔在公网,被扫出来就是挖矿脚本的靶子。
二、指定配置启动,并确认起来没
redis-server redis.conf
ps -ef | grep redis
能看到 redis-server *:6379 这类进程就算起来了。更严谨的验证方式是用客户端敲一下:
redis-cli -a 你的强密码 ping
返回 PONG 才是真的通。
三、写 systemd 单元,交给系统托管
进 /etc/systemd/system 目录创建一个 redis.service:
cd /etc/systemd/system
touch redis.service
vim redis.service
写入下面内容(ExecStart 的路径换成你自己的):
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
说明:User=redis/Group=redis 是运行身份,别用 root 跑服务;Restart=always 让崩了自动拉起;ExecStop 用 shutdown 而不是 kill,保证落盘;WantedBy=multi-user.target 表示多用户运行级别下启用。
四、重载、启动、设开机自启
systemctl daemon-reload
systemctl start redis
systemctl status redis
systemctl stop redis
systemctl restart redis
systemctl enable redis
systemctl 能用的前提就是这个 .service 文件写对了,所以第三、四步顺序别颠倒。
五、管理命令一览
- 看状态:systemctl status redis
- 启/停/重启:systemctl start|stop|restart redis
- 看实时日志
:journalctl -u redis -f
- 看有没有开机自启:systemctl is-enabled redis
六、几个容易出问题的地方
- 权限:redis 用户对 dir 和 logfile 所在的目录要有写权限,否则启动就报 Can't open the log file。
- 端口 6379 没放行:内网用要 firewall-cmd 放行,公网用绝对别裸奔。
- 内存被(SO)撑爆:redis 默认不做 maxmemory 限制,容器或小内存机器上一涨就 OOM,务必配 maxmemory 和对应的淘汰策略。
- 改配置不生效:redis 支持 CONFIG REWRITE 把当前运行参数写回文件,改完想立刻生效可以用 redis-cli CONFIG SET 只改运行时值,或者老老实实 restart。
qidao123.com企服评测-应用市场 编辑提示
|