启用持久化后redislabs/rejson镜像无法响应JSON命令求助
问题原因与解决方法
问题本质:你追加
--save等启动参数时,覆盖了镜像默认的启动命令。redislabs/rejson镜像默认是通过加载了ReJSON模块的配置文件启动Redis的,手动传启动参数后,Redis会跳过默认配置,以原生Redis实例启动,没有加载ReJSON模块,所以json.get这类命令无法被识别。两种可行解决方式:
- 明确指定加载ReJSON模块,同时追加持久化参数
直接在启动命令里指定redis-server并加上模块加载参数,再带上你的持久化和日志配置:docker run -d -p 6379:6379 --name redis-redisjson --rm redislabs/rejson:latest redis-server --loadmodule /usr/lib/redis/modules/rejson.so --save 60 1 --loglevel warning - 自定义配置文件挂载启动
先在本地创建redis.conf文件,写入模块加载和持久化配置:
然后启动容器时挂载这个配置文件:loadmodule /usr/lib/redis/modules/rejson.so save 60 1 loglevel warningdocker run -d -p 6379:6379 --name redis-redisjson --rm -v $(pwd)/redis.conf:/etc/redis/redis.conf redislabs/rejson:latest redis-server /etc/redis/redis.conf
- 明确指定加载ReJSON模块,同时追加持久化参数
内容的提问来源于stack exchange,提问作者rabinnh
相关产品推荐
相关产品推荐

