使用Docker部署Redis并配置持久化與密碼保護(hù)的詳細(xì)步驟
1. 準(zhǔn)備工作
1.1 安裝 Docker
確保已安裝 Docker。如果未安裝,請(qǐng)參考以下命令:
Ubuntu/Debian:
sudo apt-get update sudo apt-get install docker.io
CentOS/Fedora:
sudo yum install docker
macOS/Windows:
下載并安裝 Docker Desktop。
安裝完成后,啟動(dòng) Docker 服務(wù):
sudo systemctl start docker sudo systemctl enable docker
2. 創(chuàng)建 Redis 目錄和配置文件
2.1 創(chuàng)建目錄
在 /home/middleware/redis
下創(chuàng)建 data
目錄用于存放 Redis 數(shù)據(jù),并創(chuàng)建 redis.conf
配置文件:
mkdir -p /home/middleware/redis/data touch /home/middleware/redis/redis.conf
2.2 編輯配置文件
編輯 redis.conf
文件,添加以下內(nèi)容:
bind 0.0.0.0 port 6379 dir /data dbfilename dump.rdb # 設(shè)置 Redis 密碼 requirepass yourpassword # RDB 持久化配置 # 900 秒(15 分鐘)內(nèi)至少有 1 個(gè)鍵被修改時(shí)觸發(fā)保存 save 900 1 # 300 秒(5 分鐘)內(nèi)至少有 10 個(gè)鍵被修改時(shí)觸發(fā)保存 save 300 10 # 60 秒(1 分鐘)內(nèi)至少有 10000 個(gè)鍵被修改時(shí)觸發(fā)保存 save 60 10000
bind 0.0.0.0
:允許所有 IP 連接。port 6379
:Redis 服務(wù)端口。dir /data
:數(shù)據(jù)存儲(chǔ)目錄。dbfilename dump.rdb
:數(shù)據(jù)文件名。requirepass yourpassword
:設(shè)置 Redis 密碼(將yourpassword
替換為你的密碼)。save
:配置 RDB 持久化規(guī)則(詳見下文解釋)。
2.3 save 指令詳解
save
指令用于配置 Redis 的 RDB 持久化策略。它的語(yǔ)法如下:
save <seconds> <changes>
<seconds>
:時(shí)間間隔(秒)。<changes>
:在指定時(shí)間間隔內(nèi),如果數(shù)據(jù)發(fā)生了至少<changes>
次修改,則觸發(fā)保存。
示例解釋
在配置文件中:
save 900 1 save 300 10 save 60 10000
save 900 1
- 如果 900 秒(15 分鐘) 內(nèi),至少有 1 個(gè)鍵 被修改,則觸發(fā)保存。
save 300 10
- 如果 300 秒(5 分鐘) 內(nèi),至少有 10 個(gè)鍵 被修改,則觸發(fā)保存。
save 60 10000
- 如果 60 秒(1 分鐘) 內(nèi),至少有 10000 個(gè)鍵 被修改,則觸發(fā)保存。
為什么需要多個(gè) save
規(guī)則?
多個(gè) save
規(guī)則可以平衡 數(shù)據(jù)安全性 和 性能:
- 頻繁保存(如
save 60 10000
):確保數(shù)據(jù)丟失的風(fēng)險(xiǎn)最小化,但可能會(huì)影響性能,因?yàn)轭l繁的磁盤寫入會(huì)增加 I/O 負(fù)載。 - 較少保存(如
save 900 1
):減少磁盤 I/O,但可能會(huì)增加數(shù)據(jù)丟失的風(fēng)險(xiǎn)。
通過組合多個(gè)規(guī)則,Redis 可以在不同場(chǎng)景下靈活地觸發(fā)數(shù)據(jù)保存。
3. 使用 Docker 運(yùn)行 Redis
3.1 拉取 Redis 鏡像
從 Docker Hub 拉取 Redis 官方鏡像:
docker pull redis
3.2 啟動(dòng) Redis 容器
運(yùn)行以下命令啟動(dòng) Redis 容器,并掛載配置文件和數(shù)據(jù)目錄:
docker run --name redis -d \ -p 6379:6379 \ -v /home/middleware/redis/data:/data \ -v /home/middleware/redis/redis.conf:/usr/local/etc/redis/redis.conf \ redis redis-server /usr/local/etc/redis/redis.conf
--name redis
:容器命名為redis
。-d
:后臺(tái)運(yùn)行容器。-p 6379:6379
:將主機(jī)的 6379 端口映射到容器的 6379 端口。-v /home/middleware/redis/data:/data
:掛載數(shù)據(jù)目錄。-v /home/middleware/redis/redis.conf:/usr/local/etc/redis/redis.conf
:掛載配置文件。redis redis-server /usr/local/etc/redis/redis.conf
:使用自定義配置文件啟動(dòng) Redis。
4. 驗(yàn)證 Redis 部署
4.1 檢查容器狀態(tài)
運(yùn)行以下命令,查看容器是否正常運(yùn)行:
docker ps
4.2 連接 Redis
使用 redis-cli
連接 Redis,并驗(yàn)證密碼:
docker exec -it redis redis-cli
在 Redis CLI 中執(zhí)行以下命令進(jìn)行認(rèn)證:
AUTH yourpassword
認(rèn)證成功后,可以執(zhí)行 Redis 命令,例如:
SET mykey "Hello, Redis!" GET mykey
4.3 驗(yàn)證數(shù)據(jù)持久化
停止并重新啟動(dòng) Redis 容器:
docker stop redis docker start redis
再次連接 Redis,檢查數(shù)據(jù)是否仍然存在:
docker exec -it redis redis-cli AUTH yourpassword GET mykey
5. 使用 Docker Compose(可選)
如果你更喜歡使用 Docker Compose 管理 Redis 容器,可以創(chuàng)建 docker-compose.yml
文件:
version: '3' services: redis: image: redis container_name: redis ports: - "6379:6379" volumes: - /home/middleware/redis/data:/data - /home/middleware/redis/redis.conf:/usr/local/etc/redis/redis.conf command: redis-server /usr/local/etc/redis/redis.conf
然后運(yùn)行以下命令啟動(dòng)服務(wù):
docker-compose up -d
停止服務(wù):
docker-compose down
6. 目錄結(jié)構(gòu)
最終的 /home/middleware/redis
目錄結(jié)構(gòu)如下:
/home/middleware/redis/ ├── data/ # Redis 持久化數(shù)據(jù)目錄 │ └── dump.rdb # Redis 數(shù)據(jù)文件 └── redis.conf # Redis 配置文件
7. 總結(jié)
通過以上步驟,你已經(jīng)成功使用 Docker 部署了 Redis,并通過 redis.conf
配置文件實(shí)現(xiàn)了數(shù)據(jù)持久化和密碼保護(hù)。本文還詳細(xì)解釋了 save
指令的作用和配置方法,幫助你根據(jù)業(yè)務(wù)需求靈活調(diào)整持久化策略。
以上就是使用Docker部署Redis并配置持久化與密碼保護(hù)的詳細(xì)步驟的詳細(xì)內(nèi)容,更多關(guān)于Docker部署Redis持久化與密碼保護(hù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用Redis實(shí)現(xiàn)用戶積分排行榜的教程
這篇文章主要介紹了使用Redis實(shí)現(xiàn)用戶積分排行榜的教程,包括一個(gè)用PHP腳本進(jìn)行操作的例子,需要的朋友可以參考下2015-04-04Redis使用ZSET實(shí)現(xiàn)消息隊(duì)列使用小結(jié)
這篇文章主要介紹了Redis使用ZSET實(shí)現(xiàn)消息隊(duì)列使用總結(jié),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03redis集群主從節(jié)點(diǎn)自動(dòng)切換方式
這篇文章主要介紹了redis集群主從節(jié)點(diǎn)自動(dòng)切換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Redis序列化設(shè)置以及jetcache連接Redis序列化的設(shè)置過程
這篇文章主要介紹了Redis序列化設(shè)置以及jetcache連接Redis序列化的設(shè)置過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Redis實(shí)現(xiàn)數(shù)據(jù)的交集、并集、補(bǔ)集的示例
本文主要介紹了Redis實(shí)現(xiàn)數(shù)據(jù)的交集、并集、補(bǔ)集的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Redis入門教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Redis是一款開源的、高性能的鍵-值存儲(chǔ)(key-value store)。下面通過本文大家分享Redis入門教程,感興趣的朋友參考下吧2017-08-08