我可以使用以下命令运行普通的 redis docker 映像:
docker run --name redis -p 6379:6379 -v /home/maryam/redis:/data -d redis redis-server
然后我可以按照我的预期通过 redis-py 访问数据库。但我想使用自定义配置文件,为此,我指定了我的 redis.conf 的路径并像这样创建容器:
docker run -v /home/maryam/Desktop/redis.conf:/usr/local/etc/redis/redis.conf -v /home/maryam/redis:/data -p 6379:6379 --name redis -d redis redis-server /usr/local/etc/redis/redis.conf
容器的构建没有任何错误,我可以在其中看到 redis.conf 文件。问题是当我想通过 redis-py 对数据库做任何事情时,我收到以下错误:
redis.exceptions.ConnectionError: Error while reading from socket: ('Connection closed by server.',)
我认为问题的根源应该是我编辑过的 redis.conf 文件,并在其中添加了以下几行:
maxmemory 4gb (I also tried 4200000000 bytes)
maxmemory-policy allkeys-lru
maxmemory-samples 5
没有它,它可以完美运行!那么知道如何克服这个问题吗?