我的redis服务(从源安装)失败,并在/var/log/redis.log
中显示此消息
2309:C 16 Mar 2019 20:16:10.633 # Redis version=5.0.3, bits=64, commit=00000000, modified=0, pid=2309, just started
2309:C 16 Mar 2019 20:16:10.633 # Configuration loaded
2311:M 16 Mar 2019 20:16:10.634 # Can't open the append-only file: Permission denied
但是:
root@redis:~# sudo su - redis
redis@redis:~$ touch /var/lib/redis/foobar.txt
redis@redis:~$ echo $?
0
这是我的/etc/redis.conf
root@redis:~# cat /etc/redis.conf
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
dir /var/lib/redis
daemonize yes
logfile "/var/log/redis.log"
这是我用于redis的自定义单元文件
root@redis:~# cat /etc/systemd/system/redis.service
Description=Redis In-Memory Data Store
After=network.target
[Service]
Type=forking
User=redis
Group=redis
PermissionsStartOnly=true
ExecStop=/bin/kill -s TERM $MAINPID
PIDFile=/var/run/redis/redis-server.pid
ExecStart=/opt/redis-stable/src/redis-server /etc/redis.conf
Restart=always
RestartSec=3
LimitNOFILE=65535
ReadWriteDirectories=-/var/lib/redis
ReadOnlyDirectories=/
ReadWriteDirectories=-/var/lib/redis
ReadWriteDirectories=-/var/log/redis
ReadWriteDirectories=-/var/run/redis
[Install]
WantedBy=multi-user.target
答案 0 :(得分:1)
redis以非root用户身份启动,因此您需要在启动服务之前调整数据目录的权限。
您只需要执行以下命令:
sudo chown -R 1001:1001 redis-data/
然后重新启动redis
答案 1 :(得分:0)
错误是redis无法写入仅追加文件。默认情况下,仅将附加文件放置在启动redis的目录中。
我的猜测是,redis用户在从其启动的位置中没有写权限。只需确保您从redis用户有权访问的工作目录中启动redis。
要了解有关AOF文件的更多信息,请查看文档:{{3}}。
答案 2 :(得分:0)
-已知问题 https://github.com/redis/redis/issues/8172 -我仍然无法弄清楚如何让它在 kubernetes 上工作