目录
安装redis
1. 配置redis配置文件redis.conf
1.1. 找到redis.conf文件
1.2. 配置文件
2. 启动容器
3. 测试redis-cli连接
4. 证明docker使用的是指定的配置文件
安装redis
1. 配置redis配置文件redis.conf
1.1. 找到redis.conf文件
- 宿主机创建目录
/app/redis
- 在
/app/redis
下配置文件redis.conf
,主要修改以下几项配置
找到redis的模板文件,复制过来([root@rockylinux redis]# cp /etc/redis/redis.conf . )
[root@rockylinux redis]# vim /usr/lib/systemd/system/redis.service
1.2. 配置文件
📎# Redis configuration file example..txt
# 开启密码验证(可选)
requirepass 123# 允许redis外地连接,需要注释掉绑定的IP
# bind 127.0.0.1# 关闭保护模式(可选)
protected-mode no# 注释掉daemonize yes,或者配置成 daemonize no。因为该配置和 docker run中的 -d 参数冲突,会导致容器一直启动失败
daemonize no# 开启redis数据持久化, (可选)
appendonly yes
2. 启动容器
因为要使用自定义的配置文件,所以需要指定容器运行的命令为redis-server 容器内配置文件路径
docker run -d -p 6379:6379 --name redis --privileged=true \-v /app/redis/redis.conf:/etc/redis/redis.conf \-v /app/redis/data:/data \redis:6.0.8 \redis-server /etc/redis/redis.conf
redis-server /etc/redis/redis.conf: 使用 Redis 6.0.8 镜像运行 Redis 服务器,并使用指定的配置文件启动
[root@rockylinux ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b9cdc46bd1cf redis:6.0.8 "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis
注:如果此处docker ps 看不见 容器,可以只用docker logs 容器id 查看日志排错
3. 测试redis-cli连接
[root@rockylinux ~]# docker exec -it redis /bin/bash
root@b9cdc46bd1cf:/data# redis-cli
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> get k1
"v1"
4. 证明docker使用的是指定的配置文件
Redis 默认有 16 个数据库,编号从 0 到 15。每个数据库是独立的,可以存储不同的数据,但它们共享同一个 Redis 服务器实例。默认情况下,所有操作都在数据库 0 中进行。使用 select 命令可以在不同数据库之间切换
修改redis.conf 把 databases 16 改为 databases 10
127.0.0.1:6379> select 15
OK
127.0.0.1:6379[15]> exit
root@b9cdc46bd1cf:/data# exit
exit
[root@rockylinux ~]# vim /app/redis/redis.conf
databases 10
重启容器并redis-cli测试
[root@rockylinux ~]# docker restart redis #重启容器
redis
[root@rockylinux ~]# docker exec -it redis /bin/bash
root@b9cdc46bd1cf:/data# redis-cli
127.0.0.1:6379> select 11
(error) ERR DB index is out of range
127.0.0.1:6379> select 15
(error) ERR DB index is out of range
127.0.0.1:6379> select 9 #范围为10以内 15 11均不能切换
OK