与此类似的问题有几个,如:
Redis被配置为保存RDB快照,但它目前无法持久保存在Disk-Ubuntu服务器上
MISCONF Redis配置为保存RDB快照,但当前无法在磁盘上持久保存。禁用可能修改数据集的命令
当Redis安装在Docker之外时,这就可以工作了。但是我如何用docker-compose运行这个命令呢?
我尝试了以下操作:
services:
cache:
image: redis:5-alpine
command: ["echo", "1", ">", "/proc/sys/vm/overcommit_memory", "&&", "redis-server"]
ports:
- ${COMPOSE_CACHE_PORT:-6379}:6379
volumes:
- cache:/data
这不起作用:
docker-compose up
Recreating constructor_cache_1 ... done
Attaching to constructor_cache_1
cache_1 | 1 > /proc/sys/vm/overcommit_memory && redis-server
constructor_cache_1 exited with code 0
#!/bin/sh
set -e
echo 1 > /proc/sys/vm/overcommit_memory
# first arg is `-f` or `--some-option`
# or first arg is `something.conf`
if [ "${1#-}" != "$1" ] || [ "${1%.conf}" != "$1" ]; then
set -- redis-server "$@"
fi
# allow the container to be started with `--user`
if [ "$1" = 'redis-server' -a "$(id -u)" = '0' ]; then
find . \! -user redis -exec chown redis '{}' +
exec su-exec redis "$0" "$@"
fi
exec "$@"
services:
cache:
image: redis:5-alpine
ports:
- ${COMPOSE_CACHE_PORT:-6379}:6379
volumes:
- cache:/data
- ./.cache/custom-entrypoint.sh:/usr/local/bin/custom-entrypoint.sh
entrypoint: /usr/local/bin/custom-entrypoint.sh
怎么解决这个?
您的redis不安全
更新:使用expose而不是ports
,这样该服务仅可用于链接的服务
公开端口而不将其发布到主机--它们仅可被链接的服务访问。只能指定内部端口。
expose
- 6379
这可能是由于redis-server
实例不安全造成的。docker容器中的默认redis映像不安全。
我能够使用redis-cli-h
连接到我的Web服务器上的redis
为了解决这个问题,我阅读了这篇DigitalOcean的文章和许多其他文章,并得以关闭港口。
redis
部分更新为(相应地更新文件路径)redis:
restart: unless-stopped
image: redis:6.0-alpine
command: redis-server /usr/local/etc/redis/redis.conf
env_file:
- app/.env
volumes:
- redis:/data
- ./app/conf/redis.conf:/usr/local/etc/redis/redis.conf
ports:
- "6379:6379"
命令
和卷
中的redis.conf
路径应匹配
redis-cli-h
验证(它对我已停止工作)问题内容: 在写入Redis()期间,出现以下错误: MISCONF Redis配置为保存RDB快照,但当前无法持久保存在磁盘上。禁用了可能修改数据集的命令。请检查Redis日志以获取有关该错误的详细信息。 基本上,我了解到问题在于redis无法将数据保存在磁盘上,但是不知道如何解决该问题。 同样,以下问题也有相同的问题,它很久以前就被抛弃了,没有答案,很可能没有尝试解决该问题。 问题答案: 万一
在写入Redis()的过程中,我收到以下错误: MISCONF Redis配置为保存RDB快照,但当前无法在磁盘上持久保存。禁用可能修改数据集的命令。有关该错误的详细信息,请查看Redis日志。 基本上,我知道问题是redis不能在磁盘上保存数据,但不知道如何解决这个问题。 下面的问题也有同样的问题,它很久以前就被放弃了,没有答案,很可能也没有试图解决问题。
当我试图保存到redis时,我遇到了这个问题。介绍以下信息。 Miscf Redis配置为保存RDB快照,但目前无法保存到磁盘。可能修改数据集的命令被禁用,因为此实例配置为在RDB快照失败时报告写入期间的错误(在bgsave error选项上停止写入)。请检查红色 redis日志文件显示: 后台保存由pid 73启动在磁盘上保存数据库时发生写入错误:功能未实现 有人经历过这种情况吗?
每当我在redis中执行任何修改数据的命令时,我会得到以下错误 我在Mac上使用brew安装了redis。如何获取redis-server将信息记录到的日志文件的位置。我试着找redis Conf。文件,但也找不到。 我如何摆脱上面的错误,并且能够在Redis中执行修改数据的命令。
我正在使用Redis,但我有一个错误:MISCONF Redis被配置为保存RDB快照,但当前无法保存在磁盘上。禁用可能修改数据集的命令。有关错误的详细信息,请查看Redis日志 服务器:CentOS 7-Vultr 但是,我不是用建议来解决的。 拜托,帮帮我。
我得到以下Redis错误: 但是,它与权限无关,因为它只在重新启动后的某个时间才开始发生(最近的一次发生是在重新启动后的一天左右)。当它发生时,服务器有足够的内存和磁盘空间。有什么建议吗?多谢了。 编辑:正确保存时,Redis日志显示如下: [2354]13 Nov 09:56:16.071*300秒内发生10次变化。正在保存... [2354]13 Nov 09:56:16.072*后台保存由p