Skip to content

Docker 安装 Redis

Dockerfile 介绍

官方镜像:https://hub.docker.com/_/redis/

参考博客:https://zhuanlan.zhihu.com/p/62957397

创建容器

shell
docker run --name redis -p 6379:6379 -d redis:6

docker run --name redis -p 6379:6379 -d redis:6 --requirepass "密码"
docker run --name redis --restart=always -p 6379:6379 -d redis:6 --requirepass 123456

连接、查看 redis 容器

shell
docker exec -it redis redis-cli
docker exec -it redis redis-cli -h 127.0.0.1 -p 6379 -a 123456

docker exec -it “容器ID” redis-cli
docker exec -it “容器ID” redis-cli -h “内网” –a “redis密码”

docker exec -it 34aee08bf67d redis-cli
docker exec -it 34aee08bf67d redis-cli -h 127.0.0.1 -p 6379 -a 123456

Redis (error) NOAUTH Authentication required.解决方法

shell
auth 密码

set hello jack
get hello

ERR unknown command 'JSON.SET'

有时候我们会遇到这个问题,这是由于默认的官方镜像没有加载 JSON 模块导致的。

此时,我们就不能用最原始的镜像了,而需要用这个镜像:https://hub.docker.com/r/redis/redis-stack

shell
docker run -d --name redis-stack --restart=always \
-p 6379:6379 -p 8001:8001 \
-e REDIS_ARGS="--requirepass 1qaz2wsx" \
redis/redis-stack:7.2.0-v1-x86_64

这下就可以使用 JSON.SET 命令了

shell
127.0.0.1:6379> JSON.SET object . '{"foo": "bar", "ans": 42}'
OK
127.0.0.1:6379> JSON.GET object
"{\"foo\":\"bar",\"ans\":42}"

更多说明参考 docker hub redis-stack 镜像说明。