目錄
安裝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