【Docker】docker compose 安裝 Redis Stack

注:整理不易,請不要吝嗇你的贊和收藏。

前文

Redis Stack 什么是?

簡單來說,Redis Stack 是增強版的 Redis ,它在傳統的 Redis 數據庫基礎上增加了一些高級功能和模塊,以支持更多的使用場景和需求。Redis Stack 包括以下幾個主要組件:
  1. RedisJSON:用于在 Redis 中存儲和操作 JSON 數據結構,支持復雜的 JSON 查詢和更新操作。
  2. RediSearch:提供全文搜索和二次索引功能,使得在 Redis 中可以進行復雜的搜索查詢。
  3. RedisGraph:一個圖數據庫模塊,支持圖數據結構的存儲和查詢,適用于社交網絡、推薦系統等場景。
  4. RedisTimeSeries:專門用于時間序列數據的存儲和分析,支持高效的時間序列數據寫入和查詢。
  5. RedisBloom:提供概率數據結構如布隆過濾器、HyperLogLog 等,用于高效地處理大規模數據集。
Redis Stack 通過這些模塊的組合,使得開發者可以在一個統一的平臺上處理多種類型的數據和查詢需求,極大地擴展了 Redis 的應用場景。

鏡像版本說明

官方提供了兩種鏡像版本,點擊查看: redis-stack可用版本 和 redis-stack-server可用版本
  • redis/redis-stack:包含 Redis Stack server 和 Redis Insight。該容器最適合本地開發。
  • redis/redis-stack-server:僅提供 Redis Stack server 。該容器最適合生產部署。
兩者區別在于有沒有帶有 RedisInsight web可視化界面,redis/redis-stack 帶有 RedisInsight。
注:由于我不需要 web 版的 RedisInsight ,所以選擇 redis/redis-stack-server 鏡像。

準備

安裝 docker-compose

已安裝請跳過
# 檢查是否安裝 
docker-compose --version
# 通過 curl 安裝
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 設置權限
sudo chmod +x /usr/local/bin/docker-compose

創建掛載目錄

# 宿主機上創建數據持久化目錄
# 具體目錄個人自定義,我為了方便管理 docker 掛載配置全部放在 /usr/local/software/docker 目錄下
mkdir -p /usr/local/software/docker/redisStack/data

創建

創建 docker-compose.yml 文件

回到 /usr/local/software/docker/redisStack 目錄下
# 返回 /redisStack 目錄 
cd /usr/local/software/docker/redisStack
# 創建 docker-compose.yml 文件
vim docker-compose.yml
復制以下內容:
version: '3.8'
services:redis-stack-server:image: redis/redis-stack-server:latestcontainer_name: redis-stack-serverports:- "6379:6379"# 如果使用 redis-stack 鏡像,請解開注釋,8001端口為 Redis Insight WEB UI 默認端口# - "8001:8001"volumes:# 1.使用主機絕對路徑掛載數據- /usr/local/software/docker/redisStack/data:/data# 2.如果使用 docker 卷掛載數據,需要定義 'volumes:'# - redis-data:/dataenvironment:- REDIS_PASSWORD=gusy1234# 以下為介紹用,可刪除# 核心配置:# - REDIS_PORT=6379# - REDIS_PASSWORD=gusy1234# - REDIS_DATABASES=16# - REDIS_MAXMEMORY=512mb# - REDIS_MAXMEMORY_POLICY=allkeys-lru# 持久化配置:# - REDIS_APPENDONLY=yes# - REDIS_SAVE="900 1 300 10 60 10000"# 網絡安全配置:# - REDIS_BIND=0.0.0.0# - REDIS_PROTECTED_MODE=yesrestart: always
# 如果你使用 docker 卷掛載,請解開注釋
# 你可以通過命令 'docker volume inspect redis-data' 查看卷的物理位置等信息
#volumes:
#  redis-data:

配置說明

iamge:指定 Redis Stack server 的鏡像版本
ports:
  • 6379:6379:將容器的 Redis 端口映射到主機的 6379 端口。
  • 8001:8001:將容器的 RedisInsight 端口映射到主機的 8001 端口(如果選擇 Redis Stack 鏡像可配置)。
volumes:
  • ../redisStack/data:/data:使用主機絕對路徑掛載數據,語法:‘宿主機目錄:容器目錄’。
  • redis-data:/data:使用 docker 卷掛載數據,需要定義 'volumes:',你可以通過命令 'docker volume inspect redis-data' 查看卷的物理位置等信息。
environment:
  • REDIS_PORT:指定 Redis 服務的端口號(默認是 6379)。
  • REDIS_PASSWORD:設置 Redis 訪問密碼。
  • REDIS_DATABASES:設置 Redis 支持的數據庫數量(默認是 16)。
  • REDIS_MAXMEMORY:設置 Redis 的最大內存限制(例如 512mb,1gb,支持的單位有:kb、mb、gb)。
  • REDIS_MAXMEMORY_POLICY:設置內存達到上限時的淘汰策略(例如 allkeys-lru,默認 noeviction)。
# 可選值:
1 noeviction(默認):當內存不足時,新寫入操作會返回錯誤(如 (error) OOM command not allowed when used memory > 'maxmemory')。適用于不允許丟失任何數據的場景。
2 allkeys-lru:從所有鍵中淘汰最近最少使用的鍵。適用于需要緩存大量數據且可以接受淘汰部分數據的場景。
3 volatile-lru:僅從設置了過期時間的鍵中淘汰最近最少使用的鍵。適用于需要保留永久數據但可以淘汰緩存數據的場景。
4 allkeys-random:從所有鍵中隨機淘汰鍵。適用于對淘汰策略沒有特殊要求的場景。
5 volatile-random:僅從設置了過期時間的鍵中隨機淘汰鍵。適用于需要保留永久數據但可以隨機淘汰緩存數據的場景。
6 allkeys-lfu(4.0版本以上支持):從所有鍵中淘汰最不經常使用的鍵。適用于需要根據使用頻率淘汰數據的場景。
7 volatile-lfu(4.0版本以上支持):僅從設置了過期時間的鍵中淘汰最不經常使用的鍵。適用于需要根據使用頻率淘汰緩存數據的場景。
8 volatile-ttl:從設置了過期時間的鍵中淘汰剩余生存時間(TTL)最短的鍵。適用于需要優先淘汰即將過期的鍵的場景。
  • REDIS_APPENDONLY:啟用 AOF(Append-Only File)持久化(yes 或 no)。
  • REDIS_SAVE:配置 RDB 快照的保存策略(例如“900 1 300 10 60 10000”)。
# “900 1 300 10 60 10000” 表示:
如果 900 秒(15 分鐘)內發生至少 1 次寫操作,則觸發快照保存。
如果 300 秒(5 分鐘)內發生至少 10 次寫操作,則觸發快照保存。
如果 60 秒(1 分鐘)內發生至少 10,000 次寫操作,則觸發快照保存。
  • REDIS_BIND:綁定 Redis 監聽的 IP 地址(默認是 0.0.0.0,即所有接口)。
  • REDIS_PROTECTED_MODE:啟用保護模式(yes 或 no)。

驗證配置

docker-compose -f docker-compose.yml config

啟動

啟動服務

# 啟動服務
docker-compose up -d
執行結果

驗證服務

1、查看服務是否狀態
docker-compose ps
查看日志
docker-compose logs -f redis-stack-server
2、telnet 6379 端口驗證
telnet 127.0.0.1 6379
3、使用工具驗證 ( 我本地安裝了 Redis Insight )

進入容器

docker-compose exec redis-stack-server /bin/bash

拓展

docker-compose 其它語法

# 進入 docker-compose.yml 文件所在目錄
# 停止服務
docker-compose down
# 進入容器
docker-compose exec <service_name> /bin/bash

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/65621.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65621.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65621.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

kubesphere前端源碼運行

一、下載源碼 源碼是react&#xff0c;下載地址是 GitHub - kubesphere/console at v3.3.2 然后直接用git下拉就可以了 下拉完成后差不多是這樣一個目錄結構&#xff0c;記得切分支到3.3.2 二、下載依賴 1、node & yurn 想要運行源碼首先需要node&#xff0c;使用剛才…

藍橋杯歷屆真題 #分布式隊列 (Java,C++)

文章目錄 題目解讀[藍橋杯 2024 省 Java B] 分布式隊列題目描述輸入格式輸出格式樣例 #1樣例輸入 #1樣例輸出 #1 提示 思路完整代碼 題目解讀 題目鏈接 [藍橋杯 2024 省 Java B] 分布式隊列 題目描述 小藍最近學習了一種神奇的隊列&#xff1a;分布式隊列。簡單來說&#x…

PySide6 Qt for Python Qt Quick參考網址

Qt QML BOOK&#xff1a; 《Qt for Python》 -Building an Application https://www.qt.io/product/qt6/qml-book/ch19-python-build-app#signals-and-slots Qt for Python&#xff1a;與C版本的差異即BUG處理&#xff08;常見的DLL文件確實的問題等&#xff09; Qt for Pyt…

如何選擇 Dockerfile 的放置方式

是否將 Dockerfile 放在項目根目錄下還是為每個應用服務單獨創建 Dockerfile&#xff0c;取決于項目架構和使用場景。以下是針對不同項目類型的最佳實踐和推薦方式&#xff1a; 一、單體應用項目 項目特點 項目是一個單體應用&#xff0c;只有一個運行環境&#xff0c;例如&a…

如何穩定使用 O1 / O1 Pro,讓“降智”現象不再困擾?

近期&#xff0c;不少朋友在使用 O1 或 O1 Pro 模型時&#xff0c;都會碰到“降智”或“忽高忽低”的智力波動&#xff0c;比如無法識圖、無法生成圖片、甚至回答準確度也不穩定。面對這些問題&#xff0c;你是不是也感到頭疼呢&#xff1f; 為了找到更可靠的解決辦法&#xf…

用戶界面的UML建模11

然而&#xff0c;在用戶界面方面&#xff0c;重要的是要了解《boundary》類是如何與這個異常分層結構進行關聯的。 《exception》類的對象可以作為《control》類的對象。因此&#xff0c;《exception》類能夠聚合《boundary》類。 參見圖12&#xff0c;《exception》Database…

稀疏編碼 (Sparse Coding) 算法詳解與PyTorch實現

稀疏編碼 (Sparse Coding) 算法詳解與PyTorch實現 目錄 稀疏編碼 (Sparse Coding) 算法詳解與PyTorch實現1. 稀疏編碼 (Sparse Coding) 算法概述1.1 稀疏表示1.2 稀疏編碼的優勢2. 稀疏編碼的核心技術2.1 稀疏編碼的目標2.2 稀疏編碼的優化2.3 基向量的學習3. PyTorch實現稀疏編…

記錄一次面試中被問到的問題 (HR面)

文章目錄 一、你對公司的了解多少二、為什么對這個崗位感興趣三、不能說的離職原因四、離職原因高情商回復五、你的核心優勢是什么六、你認為你比其他面試候選人的優勢是什么七、不要提及情感 一、你對公司的了解多少 準備要點&#xff1a; 在面試前&#xff0c;對公司進行充分…

uniapp獲取安卓與ios的唯一標識

uniapp獲取安卓與ios的唯一標識 代碼如下&#xff1a; const info uni.getSystemInfoSync(); const platform info.platform; // 手機安卓還是蘋果if (info.platform ios) {// iosconsole.log(iOS 設備唯一標識:, info.deviceId);} else{//安卓console.log(系統信息:, use…

前端 圖片上鼠標畫矩形框,標注文字,任意刪除

效果&#xff1a; 頁面描述&#xff1a; 對給定的幾張圖片&#xff0c;每張能用鼠標在圖上畫框&#xff0c;標注相關文字&#xff0c;框的顏色和文字內容能自定義改變&#xff0c;能刪除任意畫過的框。 實現思路&#xff1a; 1、對給定的這幾張圖片&#xff0c;用分頁器綁定…

前端學習匯總

一、打包工具 1.1、vite vite&#xff1a;vite -- 開發環境 熱更新_vite 熱更新-CSDN博客 1.2、webpack 常用loader&#xff1a;webpack基礎---常用loader_webpack 常用loader-CSDN博客 loader&#xff1a;webpack4和webpack5區別1---loader_webpack4與webpack5處理圖片的…

ARIMA模型 (AutoRegressive Integrated Moving Average) 算法詳解與PyTorch實現

ARIMA模型 (AutoRegressive Integrated Moving Average) 算法詳解與PyTorch實現 目錄 ARIMA模型 (AutoRegressive Integrated Moving Average) 算法詳解與PyTorch實現1. ARIMA模型概述1.1 時間序列預測1.2 ARIMA的優勢2. ARIMA的核心技術2.1 自回歸 (AR)2.2 差分 (I)2.3 移動平…

如果商品信息更新,爬蟲會失效嗎?

當商品信息更新時&#xff0c;爬蟲是否失效取決于更新的具體內容。以下是一些可能影響爬蟲的因素&#xff1a; 可能導致爬蟲失效的情況 HTML結構變化&#xff1a;如果 yiwugo 平臺更新了商品詳情頁面的 HTML 結構&#xff0c;比如改變了元素的標簽、類名或 ID&#xff0c;那么…

Java調用外部接口有哪些方式

1.有哪些&#xff1f; 1.HttpURLConnection 1.介紹 1.這是Java標準庫提供的一個類&#xff0c;用于發送HTTP請求和接收響應 2.它不需要額外的依賴&#xff0c;但是API相對底層&#xff0c;編寫代碼時需要處理很多細節&#xff0c;如設置請求頭、處理連接和流等 2.代碼示例…

pandas系列----DataFrame簡介

DataFrame是Pandas庫中最常用的數據結構之一&#xff0c;它是一個類似于二維數組或表格的數據結構。DataFrame由多個列組成&#xff0c;每個列可以是不同的數據類型&#xff08;如整數、浮點數、字符串等&#xff09;。每列都有一個列標簽&#xff08;column label&#xff09;…

安裝完docker后,如何拉取ubuntu鏡像并創建容器?

1. 先docker拉取ubuntu鏡像 docker search ubuntu #搜索ubuntu 鏡像 docker pull ubuntu:22.04 #拉取ubuntu 鏡像 docker images #下載完成后&#xff0c;查看已經下載的鏡像 docker run --name ubuntu_container -dit ubuntu:22.04 /bin/bash # docker container -l 2.…

Qt監控系統遠程網絡登錄/請求設備列表/服務器查看實時流/回放視頻/驗證碼請求

一、前言說明 這幾個功能是近期定制的功能&#xff0c;也非常具有代表性&#xff0c;核心就是之前登錄和設備信息都是在本地&#xff0c;存放在數據庫中&#xff0c;數據庫可以是本地或者遠程的&#xff0c;現在需要改成通過網絡API請求的方式&#xff0c;現在很多的服務器很強…

詳細解釋 Vue 中的 h 函數和 render 函數:

Vue中的h函數和render函數是Vue中非常重要的函數&#xff0c;對Vue有著不可以或缺的作用&#xff0c;接下來讓我們了解一下&#xff01; // 1. h 函數的基本使用 /*** h 函數是 createVNode 的別名&#xff0c;用于創建虛擬 DOM 節點&#xff08;VNode&#xff09;* h 函數參數…

結構型模式3.組合模式

結構型模式 適配器模式&#xff08;Adapter Pattern&#xff09;橋接模式&#xff08;Bridge Pattern&#xff09;組合模式&#xff08;Composite Pattern&#xff09;裝飾器模式&#xff08;Decorator Pattern&#xff09;外觀模式&#xff08;Facade Pattern&#xff09;享元…

服務器攻擊方式有哪幾種?

隨著互聯網的快速發展&#xff0c;網絡攻擊事件頻發&#xff0c;已泛濫成互聯網行業的重病&#xff0c;受到了各個行業的關注與重視&#xff0c;因為它對網絡安全乃至國家安全都形成了嚴重的威脅。面對復雜多樣的網絡攻擊&#xff0c;想要有效防御就必須了解網絡攻擊的相關內容…