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

Docker安裝Redis最新圖文教程(非常全)

 更新時間:2023年11月27日 15:50:26   作者:快樂的小三菊  
Redis是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value的NoSQL數(shù)據(jù)庫,這篇文章主要給大家介紹了關(guān)于Docker安裝Redis的相關(guān)資料,需要的朋友可以參考下

 一、官方推薦安裝方式:

1、執(zhí)行 docker pull redis:4.0.1 命令,下載 redis 鏡像,如下所示:

2、執(zhí)行命令,創(chuàng)建并啟動 redis 容器

docker run --rm -d --name redis6379 -p 6379:6379 redis:4.0.1 --requirepass "123456"

3、測試的第一種方式,使用 RedisDesktopManager 進行連接測試,我們發(fā)現(xiàn)沒有問題,可以正常的進行連接。

4、測試的第二種方式,進入容器測試,執(zhí)行以下命令,我們可以發(fā)現(xiàn) redis 可以正常執(zhí)行

# 進入容器
docker exec -it redis6379 bash
# 打開 redis 的客戶端
redis-cli
# 輸入 redis 的密碼
auth 123456
# 封裝一個 key 值
set age 35
# 獲取剛才封裝的 key 值
get age

二、常用安裝方式一:

1、執(zhí)行 docker pull redis:4.0.1 命令,下載 redis 鏡像,如下所示:

2、執(zhí)行命令,創(chuàng)建并啟動 redis 容器,并掛載相關(guān)的目錄文件

docker run --name redis6379 -p 6379:6379 -v /usr/local/redis/data:/data -v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf -d redis:4.0.1 redis-server /etc/redis/redis.conf
# 通過這種方式啟動的 redis 是不需要密碼的
# 并且 redis.conf 被映射成為了文件夾,其實我們想要的是文件

3、執(zhí)行 docker inspect redis6379 命令,查看容器是否啟動成功,掛載是否成功

4、使用 RedisDesktopManager 進行連接測試,這次我們沒有輸入密碼,也可以正常的進行連接。

三、常用安裝方式二:

1、執(zhí)行 docker pull redis:4.0.1 命令,下載 redis 鏡像,如下所示:

2、創(chuàng)建掛載文件的目錄和文件,命令如下所示:

# 用于存儲 redis 的持久化數(shù)據(jù)
mkdir -p /usr/local/redis/data
 
# 用于存儲 redis 的配置文件
mkdir -p /usr/local/redis/conf
 
# 給 redis 設(shè)置默認(rèn)的密碼
echo "requirepass 123456" >> /usr/local/redis/conf/redis.conf

3、執(zhí)行命令,創(chuàng)建并啟動 redis 容器,并掛載相關(guān)的目錄文件

docker run --name redis6379 -p 6379:6379 -v /usr/local/redis/data:/data -v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf -d redis:4.0.1 redis-server /etc/redis/redis.conf

4、使用 RedisDesktopManager 進行連接測試,這次我們沒有輸入密碼,也可以正常的進行連接。

5、如果你在宿主機里面修改了 redis 的配置文件,記得執(zhí)行 docker restart redis6379 命令來重啟下服務(wù)。

6、設(shè)置 redis 跟隨 docker 啟動命令如下:

docker update redis --restart=always

7、附加一個完整的 redis.conf 的配置文件,可以根據(jù)自己的需要酌情添加

# 默認(rèn)redis不是以后臺進程的方式啟動,如果需要在后臺運行,需要將這個值設(shè)置成yes
# 默認(rèn)no,改為yes意為以守護進程方式啟動,可后臺運行,除非kill進程,改為yes會使配置文件方式啟動redis失敗
# 以后臺方式啟動的時候,redis會寫入默認(rèn)的進程文件/var/run/redis.pid
daemonize no
 
# 默認(rèn)yes,開啟保護模式,限制為本地訪問
protected-mode no
 
# redis啟動的進程路徑
pidfile/var/run/redis.pid
 
# 啟動進程端口號,默認(rèn)6379,可以改
port 6379
 
tcp-backlog 511
 
# 配置redis監(jiān)聽到的ip地址,可以是一個也可以多個
#bind 127.0.0.110.254.3.42
 
# redis的sock路徑
unixsocket/tmp/redis.sock
unixsocketperm 755
 
# 超時時間
timeout 0
 
#指定TCP連接是否為長連接,"偵探"信號有server端維護。默認(rèn)為0.表示禁用
tcp-keepalive 0
 
# 日志級別,log 等級分為4 級,debug,verbose,notice, 和warning。生產(chǎn)環(huán)境下一般開啟notice
loglevel notice
 
# 日志文件地址
logfile"/usr/local/redis/logs/redis.log"
 
# 設(shè)置數(shù)據(jù)庫的個數(shù),可以使用SELECT 命令來切換數(shù)據(jù)庫。默認(rèn)使用的數(shù)據(jù)庫是0號庫。默認(rèn)16個庫
databases 16
 
# RDB方式的持久化是通過快照(snapshotting)完成的,當(dāng)符合一定條件時Redis會自動將內(nèi)存中的所有數(shù)據(jù)進行快照并存儲在硬盤上。進行快照的條件可以由用戶在配置文件中自定義,由兩個參數(shù)構(gòu)成:時間和改動的鍵的個數(shù)。當(dāng)在指定的時間內(nèi)被更改的鍵的個數(shù)大于指定的數(shù)值時就會進行快照。RDB是Redis默認(rèn)采用的持久化方式,在配置文件中已經(jīng)預(yù)置了3個條件:
save 900 1    # 900秒內(nèi)有至少1個鍵被更改則進行快照
save 300 10   # 300秒內(nèi)有至少10個鍵被更改則進行快照
save 60 10000  # 60秒內(nèi)有至少10000個鍵被更改則進行快照
 
# 持久化數(shù)據(jù)存儲目錄
dir /usr/local/redis/data
 
# 當(dāng)持久化出現(xiàn)錯誤時,是否依然繼續(xù)進行工作,是否終止所有的客戶端write請求。默認(rèn)設(shè)置"yes"表示終止,一旦snapshot數(shù)據(jù)保存故障,那么此server為只讀服務(wù)。如果為"no",那么此次snapshot將失敗,但下一次snapshot不會受到影響,不過如果出現(xiàn)故障,數(shù)據(jù)只能恢復(fù)到"最近一個成功點"
stop-writes-on-bgsave-error no
 
# 在進行數(shù)據(jù)鏡像備份時,是否啟用rdb文件壓縮手段,默認(rèn)為yes。壓縮可能需要額外的cpu開支,不過這能夠有效的減小rdb文件的大,有利于存儲/備份/傳輸/數(shù)據(jù)恢復(fù)
rdbcompression yes
 
# checksum文件檢測,讀取寫入的時候rdb文件checksum,會損失一些性能
rdbchecksum yes
 
#鏡像備份文件的文件名,默認(rèn)為dump.rdb
dbfilename dump.rdb
 
#當(dāng)主master服務(wù)器掛機或主從復(fù)制在進行時,是否依然可以允許客戶訪問可能過期的數(shù)據(jù)。在"yes"情況下,slave繼續(xù)向客戶端提供只讀服務(wù),有可能此時的數(shù)據(jù)已經(jīng)過期;在"no"情況下,任何向此server發(fā)送的數(shù)據(jù)請求服務(wù)(包括客戶端和此server的slave)都將被告知"error"
slave-serve-stale-data yes
 
# 如果是slave庫,只允許只讀,不允許修改
slave-read-only yes
 
# slave與master的連接,是否禁用TCPnodelay選項。"yes"表示禁用,那么socket通訊中數(shù)據(jù)將會以packet方式發(fā)送(packet大小受到socket buffer限制)。可以提高socket通訊的效率(tcp交互次數(shù)),但是小數(shù)據(jù)將會被buffer,不會被立即發(fā)送,對于接受者可能存在延遲。"no"表示開啟tcp nodelay選項,任何數(shù)據(jù)都會被立即發(fā)送,及時性較好,但是效率較低,建議設(shè)為no,在高并發(fā)或者主從有大量操作的情況下,設(shè)置為yes
repl-disable-tcp-nodelay no
 
# 適用Sentinel模塊(unstable,M-S集群管理和監(jiān)控),需要額外的配置文件支持。slave的權(quán)重值,默認(rèn)100.當(dāng)master失效后,Sentinel將會從slave列表中找到權(quán)重值最低(>0)的slave,并提升為master。如果權(quán)重值為0,表示此slave為"觀察者",不參與master選舉
slave-priority 100
 
# 限制同時連接的客戶數(shù)量。當(dāng)連接數(shù)超過這個值時,redis 將不再接收其他連接請求,客戶端嘗試連接時將收到error 信息。默認(rèn)為10000,要考慮系統(tǒng)文件描述符限制,不宜過大,浪費文件描述符,具體多少根據(jù)具體情況而定
maxclients 10000
 
# redis-cache所能使用的最大內(nèi)存(bytes),默認(rèn)為0,表示"無限制",最終由OS物理內(nèi)存大小決定(如果物理內(nèi)存不足,有可能會使用swap)。此值盡量不要超過機器的物理內(nèi)存尺寸,從性能和實施的角度考慮,可以為物理內(nèi)存3/4。此配置需要和"maxmemory-policy"配合使用,當(dāng)redis中內(nèi)存數(shù)據(jù)達到maxmemory時,觸發(fā)"清除策略"。在"內(nèi)存不足"時,任何write操作(比如set,lpush等)都會觸發(fā)"清除策略"的執(zhí)行。在實際環(huán)境中,建議redis的所有物理機器的硬件配置保持一致(內(nèi)存一致),同時確保master/slave中"maxmemory""policy"配置一致。
maxmemory 0
 
# 內(nèi)存過期策略,內(nèi)存不足"時,數(shù)據(jù)清除策略,默認(rèn)為"volatile-lru"。
# volatile-lru  ->對"過期集合"中的數(shù)據(jù)采取LRU(近期最少使用)算法.如果對key使用"expire"指令指定了過期時間,那么此key將會被添加到"過期集合"中。將已經(jīng)過期/LRU的數(shù)據(jù)優(yōu)先移除.如果"過期集合"中全部移除仍不能滿足內(nèi)存需求,將OOM.
# allkeys-lru ->對所有的數(shù)據(jù),采用LRU算法
# volatile-random ->對"過期集合"中的數(shù)據(jù)采取"隨即選取"算法,并移除選中的K-V,直到"內(nèi)存足夠"為止. 如果如果"過期集合"中全部移除全部移除仍不能滿足,將OOM
# allkeys-random ->對所有的數(shù)據(jù),采取"隨機選取"算法,并移除選中的K-V,直到"內(nèi)存足夠"為止
# volatile-ttl ->對"過期集合"中的數(shù)據(jù)采取TTL算法(最小存活時間),移除即將過期的數(shù)據(jù).
# noeviction ->不做任何干擾操作,直接返回OOM異常
# 另外,如果數(shù)據(jù)的過期不會對"應(yīng)用系統(tǒng)"帶來異常,且系統(tǒng)中write操作比較密集,建議采取"allkeys-lru"
maxmemory-policy volatile-lru
 
# 默認(rèn)值5,上面LRU和最小TTL策略并非嚴(yán)謹(jǐn)?shù)牟呗?,而是大約估算的方式,因此可以選擇取樣值以便檢查
maxmemory-samples 5
 
# 默認(rèn)情況下,redis 會在后臺異步的把數(shù)據(jù)庫鏡像備份到磁盤,但是該備份是非常耗時的,而且備份也不能很頻繁。所以redis 提供了另外一種更加高效的數(shù)據(jù)庫備份及災(zāi)難恢復(fù)方式。開啟append only 模式之后,redis 會把所接收到的每一次寫操作請求都追加到appendonly.aof 文件中,當(dāng)redis 重新啟動時,會從該文件恢復(fù)出之前的狀態(tài)。但是這樣會造成appendonly.aof 文件過大,所以redis 還支持了BGREWRITEAOF 指令,對appendonly.aof 進行重新整理。如果不經(jīng)常進行數(shù)據(jù)遷移操作,推薦生產(chǎn)環(huán)境下的做法為關(guān)閉鏡像,開啟appendonly.aof,同時可以選擇在訪問較少的時間每天對appendonly.aof 進行重寫一次。
# 另外,對master機器,主要負(fù)責(zé)寫,建議使用AOF,對于slave,主要負(fù)責(zé)讀,挑選出1-2臺開啟AOF,其余的建議關(guān)閉
appendonly yes
 
# aof文件名字,默認(rèn)為appendonly.aof
appendfilename "appendonly.aof"
 
# 設(shè)置對appendonly.aof 文件進行同步的頻率。always表示每次有寫操作都進行同步,everysec 表示對寫操作進行累積,每秒同步一次。no不主動fsync,由OS自己來完成。這個需要根據(jù)實際業(yè)務(wù)場景進行配置
appendfsync everysec
 
# 在aof rewrite期間,是否對aof新記錄的append暫緩使用文件同步策略,主要考慮磁盤IO開支和請求阻塞時間。默認(rèn)為no,表示"不暫緩",新的aof記錄仍然會被立即同步
no-appendfsync-on-rewrite no
 
# 當(dāng)Aof log增長超過指定比例時,重寫logfile,設(shè)置為0表示不自動重寫Aof 日志,重寫是為了使aof體積保持最小,而確保保存最完整的數(shù)據(jù)。
auto-aof-rewrite-percentage 100
# 觸發(fā)aof rewrite的最小文件尺寸
auto-aof-rewrite-min-size 64mb
 
# lua腳本執(zhí)行的最大時間,單位毫秒
lua-time-limit 5000
 
# 慢日志記錄,單位微妙,10000就是10毫秒值,如果操作時間超過此值,將會把command信息"記錄"起來.(內(nèi)存,非文件)。其中"操作時間"不包括網(wǎng)絡(luò)IO開支,只包括請求達到server后進行"內(nèi)存實施"的時間."0"表示記錄全部操作
slowlog-log-slower-than 10000
 
# "慢操作日志"保留的最大條數(shù),"記錄"將會被隊列化,如果超過了此長度,舊記錄將會被移除。可以通過"SLOWLOG<subcommand> args"查看慢記錄的信息(SLOWLOG get 10,SLOWLOG reset)
slowlog-max-len 128
notify-keyspace-events ""
 
# hash類型的數(shù)據(jù)結(jié)構(gòu)在編碼上可以使用ziplist和hashtable。ziplist的特點就是文件存儲(以及內(nèi)存存儲)所需的空間較小,在內(nèi)容較小時,性能和hashtable幾乎一樣.因此redis對hash類型默認(rèn)采取ziplist。如果hash中條目的條目個數(shù)或者value長度達到閥值,將會被重構(gòu)為hashtable。
# 這個參數(shù)指的是ziplist中允許存儲的最大條目個數(shù),,默認(rèn)為512,建議為128
hash-max-ziplist-entries 512
# ziplist中允許條目value值最大字節(jié)數(shù),默認(rèn)為64,建議為1024
hash-max-ziplist-value 64
 
# 同上
list-max-ziplist-entries 512
list-max-ziplist-value 64
 
# intset中允許保存的最大條目個數(shù),如果達到閥值,intset將會被重構(gòu)為hashtable
set-max-intset-entries 512
 
# zset為有序集合,有2中編碼類型:ziplist,skiplist。因為"排序"將會消耗額外的性能,當(dāng)zset中數(shù)據(jù)較多時,將會被重構(gòu)為skiplist。
zset-max-ziplist-entries 128
# zset中允許條目value值最大字節(jié)數(shù),默認(rèn)為64,建議為1024
zset-max-ziplist-value 64
 
# 是否開啟頂層數(shù)據(jù)結(jié)構(gòu)的rehash功能,如果內(nèi)存允許,請開啟。rehash能夠很大程度上提高K-V存取的效率
activerehashing yes
 
# 客戶端buffer控制。在客戶端與server進行的交互中,每個連接都會與一個buffer關(guān)聯(lián),此buffer用來隊列化等待被client接受的響應(yīng)信息。如果client不能及時的消費響應(yīng)信息,那么buffer將會被不斷積壓而給server帶來內(nèi)存壓力.如果buffer中積壓的數(shù)據(jù)達到閥值,將會導(dǎo)致連接被關(guān)閉,buffer被移除。
 
# buffer控制類型包括:normal -> 普通連接;slave->與slave之間的連接;pubsub ->pub/sub類型連接,此類型的連接,往往會產(chǎn)生此種問題;因為pub端會密集的發(fā)布消息,但是sub端可能消費不足.指令格式:client-output-buffer-limit <class> <hard><soft><seconds>",其中hard表示buffer最大值,一旦達到閥值將立即關(guān)閉連接;soft表示"容忍值",它和seconds配合,如果buffer值超過soft且持續(xù)時間達到了seconds,也將立即關(guān)閉連接,如果超過了soft但是在seconds之后,buffer數(shù)據(jù)小于了soft,連接將會被保留.其中hard和soft都設(shè)置為0,則表示禁用buffer控制.通常hard值大于soft.
client-output-buffer-limitnormal 0 0 0
client-output-buffer-limitslave 256mb 64mb 60
client-output-buffer-limitpubsub 32mb 8mb 60
 
# Redis server執(zhí)行后臺任務(wù)的頻率,默認(rèn)為10,此值越大表示redis對"間歇性task"的執(zhí)行次數(shù)越頻繁(次數(shù)/秒)。"間歇性task"包括"過期集合"檢測、關(guān)閉"空閑超時"的連接等,此值必須大于0且小于500。此值過小就意味著更多的cpu周期消耗,后臺task被輪詢的次數(shù)更頻繁。此值過大意味著"內(nèi)存敏感"性較差。建議采用默認(rèn)值。
hz 10
 
# 當(dāng)一個child在重寫AOF文件的時候,如果aof-rewrite-incremental-fsync值為yes生效,那么這個文件會以每次32M數(shù)據(jù)的來被同步,這大量新增提交到磁盤是有用的,并且能避免高峰延遲。
aof-rewrite-incremental-fsync yes

總結(jié)

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

相關(guān)文章

  • 基于docker Desktop一鍵式搭建k8s環(huán)境的步驟

    基于docker Desktop一鍵式搭建k8s環(huán)境的步驟

    在docker desktop中一鍵啟動k8s環(huán)境很簡單,下面介紹如何啟動dashboard,dashboard儀表盤是新手學(xué)習(xí)k8s至關(guān)重要的一個工具,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2023-11-11
  • CentOS7部署19版docker(簡單,可跟做)

    CentOS7部署19版docker(簡單,可跟做)

    這篇文章主要介紹了CentOS7部署19版docker,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • docker?安裝?zeppeline的操作

    docker?安裝?zeppeline的操作

    Zeppelin是基于Jupyter Notebook技術(shù)開發(fā)的大數(shù)據(jù)交互分析服務(wù)軟件。接下來通過本文給大家介紹docker?安裝?zeppeline的相關(guān)知識,感興趣的朋友一起看看吧
    2022-01-01
  • docker部署mysql+phpmyadmin的3種方式

    docker部署mysql+phpmyadmin的3種方式

    本文介紹了三種訪問phpmyadmin的方法:link、network和docker-compose.yml,docker-compose.yml文件內(nèi)容為:打開瀏覽器,輸入localhost:8080即可訪問phpmyadmin界面,帳號密碼都是root
    2024-12-12
  • 基于Docker實現(xiàn)MySQL主從復(fù)制的詳細(xì)教程

    基于Docker實現(xiàn)MySQL主從復(fù)制的詳細(xì)教程

    這篇博客整理了如何在Docker環(huán)境下配置MySQL主從復(fù)制,通過創(chuàng)建和命名兩個MySQL容器,設(shè)置獨立IP,并詳細(xì)說明了在宿主機上持久化數(shù)據(jù)、開啟root遠(yuǎn)程訪問及添加復(fù)制用戶的過程,需要的朋友可以參考下
    2024-10-10
  • docker安裝redis設(shè)置密碼并連接的操作

    docker安裝redis設(shè)置密碼并連接的操作

    這篇文章主要介紹了docker安裝redis設(shè)置密碼并連接的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • docker部署springBoot項目實操(docker是什么)

    docker部署springBoot項目實操(docker是什么)

    Docker可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化,這篇文章主要介紹了docker部署springBoot項目實操,需要的朋友可以參考下
    2025-03-03
  • Docker SSH連接docker容器的示例代碼

    Docker SSH連接docker容器的示例代碼

    這篇文章主要介紹了Docker SSH連接docker容器的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Docker存儲目錄問題以及如何修改Docker默認(rèn)存儲位置

    Docker存儲目錄問題以及如何修改Docker默認(rèn)存儲位置

    在Docker中,默認(rèn)情況下數(shù)據(jù)存儲路徑為/var/lib/docker,隨著容器和鏡像數(shù)量的增加,這可能會占用大量磁盤空間,這篇文章主要給大家介紹了關(guān)于Docker存儲目錄問題以及如何修改Docker默認(rèn)存儲位置的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • Docker打印和配置環(huán)境變量的命令詳解

    Docker打印和配置環(huán)境變量的命令詳解

    在現(xiàn)代應(yīng)用開發(fā)中,Docker 提供了一種有效的容器化解決方案,使得應(yīng)用的部署、擴展和管理變得更加靈活,環(huán)境變量在容器化應(yīng)用中起著重要作用,它們可以幫助配置應(yīng)用的運行環(huán)境,本文給大家介紹了在 Docker 容器中打印和配置環(huán)境變量,需要的朋友可以參考下
    2024-10-10

最新評論