欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

docker安裝redis的完整步驟詳解

 更新時間:2025年03月04日 10:34:17   作者:java阿杜  
這篇文章主要介紹了docker安裝redis的完整步驟,包括拉取鏡像、設(shè)置配置文件、編寫docker-compose.yml文件啟動Redis以及測試Redis連接,文中通過圖文及代碼介紹的非常詳細(xì),需要的朋友可以參考下

在平常的開發(fā)工作中,我們經(jīng)常會用到 redis,那么 docker 下應(yīng)該如何安裝 redis 呢?簡單來說:第一步:拉取redis鏡像;第二步:設(shè)置 redis.conf 配置文件;第三步:編寫 docker-compose.yml文件,啟動 redis;第四步:測試 redis。

1:拉取 redis 鏡像:docker  pull  redis:版本號

根據(jù)自己的需求,拉取合適的redis版本,如果 docker pull redis 命令,后面不寫版本號,那么默認(rèn)拉取最新的 redis 鏡像。拉取完成后,可以使用 docker images 命令查看拉取到的鏡像,redis鏡像如下:

注意:如果拉取鏡像失敗,可能是 docker 配置文件的問題。在 /etc/docker/ 目錄下,修改 daemon.json 文件中的配置的鏡像加速器。鏡像加速器網(wǎng)上搜索很多,嘗試修改配置,修改完后一定要重啟docker服務(wù),不然不生效。重啟 docker 命令:systemctl restart docker

2:創(chuàng)建掛載目錄,并設(shè)置 redis.conf 文件

1)創(chuàng)建掛載目錄

mkdir  -p  /docker/redis/conf/ 
mkdir  -p  /docker/redis/data/

2)設(shè)置 redis.conf 配置文件

在 /docker/redis/conf/ 目錄下 新建 redis.conf 文件,設(shè)置文件內(nèi)容如下:

# redis 配置

# 端口
port 6379

# tcp-backlog 表示 TCP 的監(jiān)聽隊列長度。
# 當(dāng) Redis 服務(wù)器監(jiān)聽客戶端的連接請求時,操作系統(tǒng)會維護(hù)一個等待連接的隊列,tcp-backlog 的值決定了這個隊列的長度。
# 在上述配置中,將該隊列長度設(shè)置為 511,表示 Redis 服務(wù)器在監(jiān)聽客戶端連接時,操作系統(tǒng)的 TCP 連接隊列最多可容納 511 個等待處理的連接請求。
tcp-backlog 511

# 當(dāng)設(shè)置為 0 時,表示 Redis 服務(wù)器不會因為客戶端處于空閑狀態(tài)而自動斷開連接。
# 即只要客戶端建立了與 Redis 服務(wù)器的連接,無論該客戶端是否發(fā)送請求,服務(wù)器都不會主動關(guān)閉連接,即使該客戶端長時間處于不活動狀態(tài)。
timeout 0

# tcp-keepalive 表示 TCP ?;顧C(jī)制的時間間隔,單位是秒。
# 當(dāng) Redis 服務(wù)器與客戶端建立 TCP 連接后,會在連接處于空閑狀態(tài)一段時間后發(fā)送保活探測包,以確保連接的有效性。
# 在上述配置中,設(shè)置為 300 秒,表示 Redis 服務(wù)器會在客戶端連接空閑 300 秒后,向客戶端發(fā)送?;钐綔y包。
tcp-keepalive 300

# 當(dāng)設(shè)置為 no 時,表示 Redis 服務(wù)器不會以守護(hù)進(jìn)程(daemon)的模式運行。
# 守護(hù)進(jìn)程是一種在后臺運行的進(jìn)程,通常不與用戶進(jìn)行交互,并且在后臺持續(xù)運行,不占用終端會話。
daemonize no

# Note that on modern Linux systems "/run/redis.pid" is more conforming
# and should be used instead.
pidfile /var/run/redis_6379.pid

# 控制 Redis 服務(wù)器的日志記錄級別。
loglevel notice

# 該配置指定了 Redis 服務(wù)器將日志信息存儲在 /data/redis.log 文件中。
# 當(dāng) Redis 服務(wù)器運行時,會將產(chǎn)生的日志信息(如錯誤信息、操作信息等)按照 loglevel 所設(shè)定的級別寫入到 /data/redis.log 文件中。
logfile "/data/redis.log"


# 主要用于設(shè)置 Redis 服務(wù)器內(nèi)部可用的數(shù)據(jù)庫數(shù)量。
# Redis 支持多個數(shù)據(jù)庫,這些數(shù)據(jù)庫在內(nèi)部以數(shù)字編號,從 0 開始。
# 該配置項表示 Redis 服務(wù)器內(nèi)部將創(chuàng)建 16 個不同的數(shù)據(jù)庫,編號為 0 到 15。
databases 16


always-show-logo no

# 主要用于控制 Redis 服務(wù)器在后臺保存操作(BGSAVE)出現(xiàn)錯誤時的行為。
# 當(dāng)設(shè)置為 yes 時,如果 Redis 在執(zhí)行后臺保存操作(BGSAVE)出現(xiàn)錯誤,Redis 服務(wù)器將停止接受寫操作(如 SET, HSET, LPUSH 等)。
stop-writes-on-bgsave-error yes

# 主要用于控制 Redis 的 RDB 文件的壓縮功能。
# 當(dāng)設(shè)置為 yes 時,Redis 在生成 RDB 文件(Redis 數(shù)據(jù)庫的快照文件,用于數(shù)據(jù)持久化)時,會對文件進(jìn)行壓縮。
rdbcompression yes

# 主要用于控制 Redis 在生成和加載 RDB 文件時是否包含校驗和信息。
# 當(dāng)設(shè)置為 yes 時,Redis 在生成 RDB 文件(用于持久化存儲 Redis 數(shù)據(jù)庫狀態(tài)的文件)時,會在文件末尾添加一個校驗和。
rdbchecksum yes

# 主要用于指定 Redis 進(jìn)行 RDB 持久化時生成的文件名稱。
# 當(dāng) Redis 進(jìn)行 RDB 持久化操作(例如使用 SAVE 或 BGSAVE 命令)時,會將當(dāng)前 Redis 數(shù)據(jù)庫的狀態(tài)存儲在一個文件中。
# 該配置項指定這個文件的名稱為 dump.rdb。
dbfilename dump.rdb

# Redis 在某些同步操作時對 RDB 文件的處理方式。
# 當(dāng)設(shè)置為 no 時,Redis 在執(zhí)行某些同步操作(如 RDB 文件的復(fù)制、同步等)時,不會主動刪除同步過的 RDB 文件。
rdb-del-sync-files no

dir /data

# 當(dāng)該配置設(shè)置為 yes 時,表示副本服務(wù)器(replica)在某些情況下會繼續(xù)為客戶端提供陳舊的數(shù)據(jù)服務(wù)。
# 具體來說,當(dāng)副本服務(wù)器與主服務(wù)器的同步出現(xiàn)問題(如網(wǎng)絡(luò)故障、主服務(wù)器宕機(jī)、復(fù)制鏈路中斷等),導(dǎo)致副本服務(wù)器無法從主服務(wù)器更新最新的數(shù)據(jù)時,
# 它不會拒絕客戶端的讀請求,而是繼續(xù)使用它最后一次同步得到的數(shù)據(jù)為客戶端提供服務(wù)。
replica-serve-stale-data yes

# 當(dāng)設(shè)置為 yes 時,表示 Redis 副本服務(wù)器只能處理讀操作,而不允許執(zhí)行寫操作。
# 例如,用戶試圖在副本服務(wù)器上執(zhí)行寫操作,如 SET key value、HSET hash_key field value 等命令時,
# Redis 副本服務(wù)器會拒絕執(zhí)行這些命令并返回錯誤信息。
replica-read-only yes

# 該配置項位于 Redis 的配置文件中,用于控制 Redis 在主從復(fù)制時的同步方式
# 當(dāng)設(shè)置為 no(默認(rèn)狀態(tài))時,Redis 主服務(wù)器在進(jìn)行復(fù)制操作時,會先將數(shù)據(jù)存儲在磁盤上的 RDB 文件中,然后將該文件傳輸給副本服務(wù)器
# 在這種模式下,主服務(wù)器不會將 RDB 文件存儲在磁盤上,而是直接通過網(wǎng)絡(luò)將內(nèi)存中的數(shù)據(jù)快照發(fā)送給副本服務(wù)器。
# 這樣可以減少磁盤 I/O,提高復(fù)制的速度,尤其適用于主服務(wù)器磁盤 I/O 是性能瓶頸的場景。
repl-diskless-sync no

# repl-diskless-sync 被設(shè)置為 yes 時,主服務(wù)器會采用無盤復(fù)制的方式將數(shù)據(jù)同步到副本服務(wù)器。
# repl-diskless-sync-delay 則表示在開始無盤同步操作之前,主服務(wù)器會等待的時間(單位:秒)。在上述示例中,主服務(wù)器會等待 5 秒鐘。
repl-diskless-sync-delay 5

# 主要用于控制 Redis 副本服務(wù)器在進(jìn)行無盤復(fù)制時的加載方式。
# 當(dāng)設(shè)置為 disabled 時,表示 Redis 副本服務(wù)器在進(jìn)行無盤復(fù)制(即從主服務(wù)器接收內(nèi)存快照而非從磁盤加載 RDB 文件)時,使用默認(rèn)的加載方式。
repl-diskless-load disabled

# 主要用于控制 Redis 主從復(fù)制過程中的 TCP 數(shù)據(jù)傳輸方式。
# 當(dāng)設(shè)置為 no 時,表示 Redis 在主從復(fù)制過程中,不會禁用 TCP_NODELAY 選項。
repl-disable-tcp-nodelay no

# 主要用于確定 Redis 副本服務(wù)器在主從復(fù)制架構(gòu)中的優(yōu)先級。
# 該配置項的值表示 Redis 副本服務(wù)器的優(yōu)先級
replica-priority 100

# 主要用于控制 Redis 的 ACL(訪問控制列表)日志的最大長度。
acllog-max-len 128

# 設(shè)置密碼
requirepass your_password

# 主要涉及 Redis 的鍵刪除操作和復(fù)制操作的行為,用于控制 Redis 在執(zhí)行某些關(guān)鍵操作時是否采用阻塞式或非阻塞式(懶刪除)的處理方式。
# 這些配置項都設(shè)置為 no 時,Redis 在執(zhí)行相應(yīng)操作(內(nèi)存驅(qū)逐、刪除過期鍵、執(zhí)行會替換舊鍵的操作以及副本服務(wù)器全量同步時的數(shù)據(jù)庫清空操作)時,
# 會采用阻塞式的刪除方式,可能會導(dǎo)致服務(wù)器在處理一些耗時較長的刪除操作時出現(xiàn)性能下降,因為會暫停對其他命令的處理。
# 而將這些配置項設(shè)置為 yes 則可以將這些操作改為非阻塞式(如使用 UNLINK 命令),使 Redis 可以在后臺漸進(jìn)式地處理刪除操作,提高性能,
# 但會增加后臺資源的消耗,并且可能會在一定程度上影響數(shù)據(jù)一致性,需要根據(jù)具體的性能需求和數(shù)據(jù)一致性要求來合理配置。
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no

# 主要用于控制 Redis 在執(zhí)行用戶刪除操作時是否使用惰性刪除。
# 當(dāng)設(shè)置為 no 時,表示 Redis 在執(zhí)行用戶發(fā)起的刪除操作(例如 DEL 命令)時,會同步刪除相關(guān)數(shù)據(jù),即立即釋放內(nèi)存。
lazyfree-lazy-user-del no

# 該配置項用于調(diào)整 Redis 進(jìn)程的 oom_score_adj 值,該值決定了在系統(tǒng)內(nèi)存不足(OOM,Out of Memory)時,
# Redis 進(jìn)程被 Linux 系統(tǒng)的 OOM Killer 選中終止的可能性。
oom-score-adj no

# 主要與 Redis 進(jìn)程在不同狀態(tài)下的 oom_score_adj 值有關(guān),該值影響 Linux 系統(tǒng)在內(nèi)存不足(OOM,Out of Memory)時選擇哪些進(jìn)程終止以釋放內(nèi)存。
# 第一個值(這里是 0)通常表示 Redis 進(jìn)程在正常狀態(tài)下的 oom_score_adj 值。
# 第二個值(這里是 200)表示 Redis 進(jìn)程在某種特定狀態(tài)下(例如處于高負(fù)載、高內(nèi)存使用或其他預(yù)定義的狀態(tài))的 oom_score_adj 值。
# 第三個值(這里是 800)表示 Redis 進(jìn)程在另一種更嚴(yán)重的狀態(tài)下(例如處于嚴(yán)重內(nèi)存壓力或其他臨界狀態(tài))的 oom_score_adj 值。
oom-score-adj-values 0 200 800

# disable-thp no

# 主要用于開啟 Redis 的 AOF(Append Only File)持久化模式。
# 當(dāng)設(shè)置為 yes 時,表示 Redis 會使用 AOF 持久化機(jī)制將寫操作追加到文件末尾,以實現(xiàn)數(shù)據(jù)的持久化存儲
appendonly yes

# The name of the append only file (default: "appendonly.aof")

appendfilename "appendonly.aof"

# appendfsync always
appendfsync everysec
# appendfsync no

# 主要用于控制 Redis 在進(jìn)行 AOF 文件重寫時的同步行為
# 當(dāng)設(shè)置為 no 時,表示 Redis 在進(jìn)行 AOF 文件重寫(bgrewriteaof)時,會繼續(xù)將新的寫操作同步到 AOF 文件中
no-appendfsync-on-rewrite no

# 該配置項表示 AOF 文件大小的增長百分比。
# 當(dāng) AOF 文件的大小相對于上一次重寫后的大小增長了 100% 時,Redis 會觸發(fā) AOF 文件的自動重寫操作。
auto-aof-rewrite-percentage 100

# 該配置項設(shè)定了 AOF 文件觸發(fā)自動重寫的最小文件大小。
# 即使 auto-aof-rewrite-percentage 條件滿足,但如果 AOF 文件的大小未達(dá)到 64mb,Redis 也不會觸發(fā)自動重寫操作。
auto-aof-rewrite-min-size 64mb

# 主要用于控制 Redis 在加載 AOF(Append Only File)文件時,遇到截斷(truncated)情況的處理方式
# 當(dāng)設(shè)置為 yes 時,表示 Redis 在加載 AOF 文件時,如果發(fā)現(xiàn)文件被截斷(可能是由于系統(tǒng)崩潰、磁盤故障等導(dǎo)致文件不完整),
# 會嘗試?yán)^續(xù)加載文件的剩余部分,并向用戶發(fā)出日志信息和警告,而不是直接拒絕加載
aof-load-truncated yes

# 主要用于控制 Redis 的 AOF(Append Only File)文件的存儲格式
# 當(dāng)設(shè)置為 yes 時,表示 Redis 的 AOF 文件將使用 RDB 前置格式
aof-use-rdb-preamble yes

# 主要用于控制 Redis 中 Lua 腳本的執(zhí)行時間限制
# 該配置項指定了 Redis 中 Lua 腳本的最大執(zhí)行時間,單位為毫秒
lua-time-limit 5000

# cluster-enabled yes

# cluster-config-file nodes-6379.conf

# cluster-node-timeout 15000

# 主要用于控制 Redis 服務(wù)器對慢查詢的記錄閾值
# 當(dāng) Redis 執(zhí)行一個命令的時間超過該閾值時,這個命令會被記錄到慢日志(slow log)中
slowlog-log-slower-than 10000

# 主要用于控制 Redis 服務(wù)器的慢日志(Slow Log)的最大長度
slowlog-max-len 128

# 主要用于控制 Redis 的延遲監(jiān)控功能的啟用閾值
# 
latency-monitor-threshold 0

notify-keyspace-events ""

# 該配置項指定了使用 ziplist 存儲哈希表時,哈希表元素的最大條目數(shù)
hash-max-ziplist-entries 512
# 該配置項指定了使用 ziplist 存儲哈希表時,哈希表元素的最大字節(jié)大小
hash-max-ziplist-value 64

# 該配置項用于指定 Redis 列表使用 ziplist 存儲時的大小限制
# 當(dāng)設(shè)置為 -2 時,表示 Redis 會根據(jù)列表的長度來決定 ziplist 的大小限制
list-max-ziplist-size -2

# 該配置項指定了 Redis 列表的壓縮深度
list-compress-depth 0

# 該配置項指定了 Redis 集合在使用整數(shù)集合(intset)存儲結(jié)構(gòu)時的最大元素數(shù)量
set-max-intset-entries 512

# 該配置項指定了 Redis 有序集合在使用 ziplist 存儲結(jié)構(gòu)時的最大元素數(shù)
zset-max-ziplist-entries 128
# 該配置項指定了 Redis 有序集合在使用 ziplist 存儲結(jié)構(gòu)時,元素的最大字節(jié)大小
zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

stream-node-max-bytes 4096
stream-node-max-entries 100

activerehashing yes

# 控制 Redis 服務(wù)器為不同類型客戶端分配的輸出緩沖區(qū)的大小限制及相關(guān)處理策略
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60


hz 10

dynamic-hz yes

aof-rewrite-incremental-fsync yes

rdb-save-incremental-fsync yes

# Enabled active defragmentation
# activedefrag no

# Minimum amount of fragmentation waste to start active defrag
# active-defrag-ignore-bytes 100mb

# Minimum percentage of fragmentation to start active defrag
# active-defrag-threshold-lower 10

# Maximum percentage of fragmentation at which we use maximum effort
# active-defrag-threshold-upper 100

# Minimal effort for defrag in CPU percentage, to be used when the lower
# threshold is reached
# active-defrag-cycle-min 1

# Maximal effort for defrag in CPU percentage, to be used when the upper
# threshold is reached
# active-defrag-cycle-max 25

# Maximum number of set/hash/zset/list fields that will be processed from
# the main dictionary scan
# active-defrag-max-scan-fields 1000

# Jemalloc background thread for purging will be enabled by default
jemalloc-bg-thread yes

# Ending

3:啟動 redis,docker compose up -d  redis

新建docker-compose.yml 文件,設(shè)置內(nèi)容如下:

version: '3'
services:
  redis:
    image: redis:6.2.6
    container_name: redis6.2.6
    ## 設(shè)置持久化,允許遠(yuǎn)程訪問,密碼等
    command: redis-server --appendonly yes --bind 0.0.0.0 --requirepass your_password
    ports:
      - 6379:6379
    volumes:
      # - ./data/:/data
      - /docker/redis/conf/redis.conf:/etc/redis/redis.conf 
      - /docker/redis/data:/data
    environment:
      - TZ=Asia/Shanghai
    restart: always

    # 獲取宿主機(jī) root 權(quán)限
    privileged: true
    # # 設(shè)置容器網(wǎng)絡(luò)為本機(jī)網(wǎng)絡(luò)
    network_mode: "host"

使用 docker compose up -d  redis 命令啟動redis,啟動完成后,可以使用 docker  ps 查看啟動狀態(tài)。如果啟動失敗,可以通過 docker  logs  容器id 或者  docker logs  容器名稱 查看redis日志。啟動完成后,查看如下:

 注意:如果修改了 redis.conf 配置文件,則需要先停止redis容器,再刪除redis容器,然后重新啟動redis,主要命令如下:

a:停止 nginx 容器:docker  stop  nginx 容器id /  容器名稱

b:刪除 nginx 容器:docker rm  容器id /  容器名稱

 c:啟動 nginx 容器:docker compose up -d  nginx

4:測試 redis

使用客戶端連接工具,進(jìn)行連接,測試如下:

以上為 docker 下安裝 redis 的基本步驟,一定要 注意 redis.conf 配置文件的掛載目錄。

到此這篇關(guān)于docker安裝redis的文章就介紹到這了,更多相關(guān)docker安裝redis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用注解實現(xiàn)Redis緩存功能

    使用注解實現(xiàn)Redis緩存功能

    這篇文章主要為大家詳細(xì)介紹了使用注解實現(xiàn)Redis緩存功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • redis調(diào)用二維碼時的不斷刷新排查分析

    redis調(diào)用二維碼時的不斷刷新排查分析

    這篇文章主要為大家介紹了redis調(diào)用二維碼時不斷刷新排查分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • Redis哨兵機(jī)制的使用詳解

    Redis哨兵機(jī)制的使用詳解

    文章講解了Redis哨兵機(jī)制的基本原理、主庫和從庫自動切換的過程、如何減少誤判、哨兵集群的組成和通信機(jī)制,以及哨兵在故障發(fā)生時如何選舉Leader進(jìn)行主從切換
    2025-01-01
  • Redis數(shù)據(jù)類型之散列類型hash命令學(xué)習(xí)

    Redis數(shù)據(jù)類型之散列類型hash命令學(xué)習(xí)

    這篇文章主要為大家介紹了Redis數(shù)據(jù)類型之散列類型hash命令學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 從一個小需求感受Redis的獨特魅力(需求設(shè)計)

    從一個小需求感受Redis的獨特魅力(需求設(shè)計)

    Redis在實際應(yīng)用中使用的非常廣泛,本篇文章就從一個簡單的需求說起,為你講述一個需求是如何從頭到尾開始做的,又是如何一步步完善的
    2019-12-12
  • 深入理解redis中multi與pipeline

    深入理解redis中multi與pipeline

    pipeline 只是把多個redis指令一起發(fā)出去,redis并沒有保證這些指定的執(zhí)行是原子的;multi相當(dāng)于一個redis的transaction的,保證整個操作的原子性,避免由于中途出錯而導(dǎo)致最后產(chǎn)生的數(shù)據(jù)不一致。本文詳細(xì)的介紹,感興趣的可以了解一下
    2021-06-06
  • Redis?Lua同步鎖實現(xiàn)源碼解析

    Redis?Lua同步鎖實現(xiàn)源碼解析

    這篇文章主要為大家介紹了Redis?Lua同步鎖實現(xiàn)源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Redis+IDEA實現(xiàn)單機(jī)鎖和分布式鎖的過程

    Redis+IDEA實現(xiàn)單機(jī)鎖和分布式鎖的過程

    這篇文章主要介紹了Redis+IDEA實現(xiàn)單機(jī)鎖和分布式鎖的過程,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Redis數(shù)據(jù)庫安全詳解

    Redis數(shù)據(jù)庫安全詳解

    這篇文章主要為大家介紹了Redis數(shù)據(jù)庫安全詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Redis sort 排序命令詳解

    Redis sort 排序命令詳解

    這篇文章主要介紹了Redis sort 排序命令詳解,本文講解了默認(rèn)排序命令、排序方式命令、BY語法、GET用法示例等內(nèi)容,需要的朋友可以參考下
    2015-07-07

最新評論