【Docker】Redis基礎命令在Docker中的使用

文章目錄

  • 一 Redis 容器化部署指南
    • 1 獲取 Redis 鏡像
    • 2 服務啟動
      • 2.1 首次啟動新容器
      • 2.2 重啟已有容器
    • 3 服務驗證
    • 4 連接 Redis
    • 5 數據持久化方案
      • 5.1 使用 Docker 卷
      • 5.2 啟用 AOF 持久化
    • 6 容器管理
      • 6.1 停止容器
      • 6.2 刪除容器
    • 7 數據清理
      • 7.1 清空 Redis 數據
      • 7.2 完全移除
      • 7.3 刪除數據卷
    • 8 最佳實踐
  • 二 Redis 常用命令速查指南
    • 1 進入 Redis 終端
    • 2 安裝 nano 編輯器
    • 3 查找 redis.conf 配置文件
    • 4 獲取 Redis 服務器信息
    • 5 啟用持久化配置
    • 6 檢查 AOF 持久化狀態
    • 7 查看容器日志
  • 三 Python腳本連接Redis的實踐
  • 四 其它
    • 1 Redis基礎數據操作命令
    • 2 Redis鍵管理命令
    • 3 Redis數據結構命令
    • 4 Redis持久化與性能相關命令

一 Redis 容器化部署指南

1 獲取 Redis 鏡像

docker pull redis:7.2-alpine  # 獲取輕量級最新版本

2 服務啟動

2.1 首次啟動新容器

docker run -d -p 6379:6379 --name myredis redis:7.2-alpine  # 返回容器ID表示成功
  • 參數說明:

    -d:后臺運行容器(detached模式)
    -p 6379:6379:容器到主機的端口映射
    --name myredis:容器命名
    redis:7.2-alpine:指定鏡像版本

2.2 重啟已有容器

docker start myredis

3 服務驗證

docker ps -f name=myredis  # 檢查容器狀態

4 連接 Redis

docker exec -it myredis redis-cli  # 可附加參數:-h <host> -p <port> -a <password>
  • 參數說明:

    docker exec:在運行中容器執行命令
    -it:交互式終端
    redis-cli:Redis命令行工具
    -h/-p/-a:遠程連接參數

5 數據持久化方案

5.1 使用 Docker 卷

docker run -d -p 6379:6379 -v redis-data:/data --name myredis redis:7.2-alpine
  • 說明:-v redis-data:/data將數據目錄掛載到卷

5.2 啟用 AOF 持久化

docker run -d -p 6379:6379 --name myredis redis:7.2-alpine redis-server --appendonly yes
  • 說明:--appendonly yes啟用操作日志記錄

6 容器管理

6.1 停止容器

docker stop myredis  # 持久化數據不受影響

6.2 刪除容器

docker rm myredis  # 未持久化的數據將丟失

7 數據清理

7.1 清空 Redis 數據

docker exec -it myredis redis-cli FLUSHALL  # 保留容器

7.2 完全移除

docker stop myredis
docker rm myredis

7.3 刪除數據卷

docker volume rm redis-data

8 最佳實踐

  • 推薦使用 Docker 卷或目錄掛載實現數據持久化
  • 配置持久化后,容器停止不會影響數據安全

二 Redis 常用命令速查指南

1 進入 Redis 終端

docker exec -it myredis sh
  • 參數說明:

docker exec:在運行中的容器內執行命令
myredis:目標容器名稱
sh:啟動Shell終端(通常為/bin/sh
注:sh與bash功能等價

2 安裝 nano 編輯器

apk add --no-cache --virtual .editors nano
  • 參數說明:

--no-cache:跳過本地緩存,直接從遠程倉庫獲取最新版本
--virtual .editors:創建.editors虛擬包組,便于后續批量卸載
nano:輕量級終端文本編輯器

3 查找 redis.conf 配置文件

find / -name redis.conf 2>/dev/null
  • 參數說明:

/:從根目錄開始遞歸搜索
-name redis.conf:精確匹配文件名
2>/dev/null:屏蔽權限錯誤提示

4 獲取 Redis 服務器信息

redis-cli INFO server
  • 參數說明:

INFO:Redis狀態查詢命令
server:返回版本號、運行時長等核心數據

5 啟用持久化配置

redis-cli CONFIG SET appendonly yes
redis-cli CONFIG REWRITE

6 檢查 AOF 持久化狀態

docker exec -it myredis redis-cli CONFIG GET appendonly
# 返回yes表示已啟用AOF持久化

7 查看容器日志

docker logs myredis

用于調試和監控Redis運行狀態

三 Python腳本連接Redis的實踐

import redis# 初始化Redis連接,設置主機、端口和編碼等參數
r = redis.Redis(host='127.0.0.1', port=6379, decode_responses=True, encoding='utf-8', max_connections=100# 如需密碼驗證,添加password參數
)try:# 測試連接print('Redis連接測試:', r.ping())# 存儲和獲取數據r.set('name', 'Alice')print('獲取name值:', r.get('name'))# 計數器操作r.incr('counter', 5)print('計數器增加5后的值:', r.get('counter'))# 刪除和檢查鍵r.delete('name')print('檢查name鍵是否存在:', r.exists('name'))print('檢查counter鍵是否存在:', r.exists('counter'))except redis.exceptions.ConnectionError as e:print('連接錯誤:', e)# 預期輸出
"""
Redis連接測試: True
獲取name值: Alice
計數器增加5后的值: 25
檢查name鍵是否存在: 0
檢查counter鍵是否存在: 1
"""

容器化部署注意事項:當Redis運行在Docker容器中且Python腳本位于另一容器時,需將host參數設為Redis容器名稱(如’myredis’)或內部網絡IP地址。

四 其它

1 Redis基礎數據操作命令

SET key value 設置鍵值對,例如 SET username "admin"username 存儲為"admin"
GET key 獲取鍵的值,如 GET username 返回存儲的 "admin"
DEL key 刪除鍵,如 DEL username 移除 username 鍵及其值。

2 Redis鍵管理命令

KEYS pattern 查找匹配模式的鍵,如 KEYS * 列出所有鍵。
EXISTS key 檢查鍵是否存在,返回10
EXPIRE key seconds 設置鍵的過期時間,例如 EXPIRE session_id 3600使 session_id 在 3600 秒后失效。

3 Redis數據結構命令

LPUSH list_key value 向列表左側插入值,如 LPUSH tasks "task1"
RPOP list_key 移除并返回列表右側的值。
HSET hash_key field value 設置哈希字段值,如 HSET user:id1 name "Alice"
HGET hash_key field 獲取哈希字段的值,如 HGET user:id1 name 返回 "Alice"

4 Redis持久化與性能相關命令

SAVE 手動觸發 RDB 持久化,將數據同步保存到磁盤。
BGSAVE 后臺異步保存數據到磁盤,不阻塞客戶端請求。
INFO 查看 Redis 服務器狀態信息,包括內存、客戶端、持久化等數據。

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

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

相關文章

ubuntu 2024 安裝拼音輸入法

1. 卸載ibussudo apt remove ibus2. install fcitx5核心組件sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-material-color3. 安裝中文語言支持sudo apt install language-pack-zh-hans4. 設置默認輸入法im-config -n fcitx55. 配置環境變量sudo vim ~/.bashrc粘貼&am…

語言模型的多個agent

是的&#xff0c;語言模型 在某些情況下確實可以通過多個 agent&#xff08;代理&#xff09;來共同協作完成任務。這種設計通常用于復雜任務或需要多步驟處理的場景&#xff0c;具體的流程如下&#xff1a; 1. 什么是 Agent&#xff1f; Agent&#xff08;代理&#xff09; 是…

CSS--:root指定變量,其他元素引用

原文網址&#xff1a;CSS--:root指定變量&#xff0c;其他元素引用-CSDN博客 簡介 本文介紹CSS中使用變量的方法。 場景描述 CSS可以使用變量&#xff0c;比如&#xff1a;指定整個網頁的主體顏色作為變量&#xff0c;其他的元素去使用這個顏色。這樣在修改顏色時&#xff…

秋招筆記-8.7

今天先來補充一下關于Unity和UE的一些問題&#xff0c;后續開始深挖項目&#xff1a;Unity關于fixed update和update&#xff1a;同一幀中物理更新優先執行&#xff1f;關于協程&#xff1a;協程是基于迭代器實現的&#xff0c;而迭代器是基于狀態機實現的。協程的本質是編譯器…

DAY 26 函數專題1:函數定義與參數

浙大疏錦行知識點回顧&#xff1a; 函數的定義變量作用域&#xff1a;局部變量和全局變量函數的參數類型&#xff1a;位置參數、默認參數、不定參數傳遞參數的手段&#xff1a;關鍵詞參數傳遞參數的順序&#xff1a;同時出現三種參數類型時 作業 #作業1 import math def calcul…

跨學科視域下的深層語義分析與人類底層邏輯一致性探索

摘要本文章旨在系統性地探討一個前沿的交叉學科研究課題&#xff1a;如何通過深層語義分析&#xff0c;探索并建模人類認知中普遍存在的底層邏輯一致性。此研究橫跨自然語言處理&#xff08;NLP&#xff09;、知識圖譜&#xff08;KG&#xff09;、認知科學、腦神經科學、系統科…

Flink CDC如何保障數據的一致性?

Flink CDC 通過 Checkpoint 機制、冪等性設計 和 事務一致性協議 保障數據同步的一致性。以下是具體實現方式和關鍵配置&#xff1a;1. Checkpoint 機制&#xff08;核心保障&#xff09;作用&#xff1a;定期保存同步狀態&#xff08;包括 Binlog 位置和全量快照進度&#xff…

上傳文件至華為云OBS

1 創建華為云Bucket1.1 創建Bucket1.2 獲取Bucket的Endpoint1.3 獲取訪問憑證注&#xff1a;每個訪問密鑰僅能下載一次&#xff0c;為了賬號安全性&#xff0c;建議您定期更換并妥善保存訪問密鑰。不再使用的訪問密鑰&#xff0c;建議停用和刪除。2 創建Sprint Boot工程創建一個…

使用驅動移除內核回調,

https://br-sn.github.io/Removing-Kernel-Callbacks-Using-Signed-Drivers/ 原創 大藍 RJ45實驗室 使用簽名驅動移除內核回調-安全KER - 安全資訊平臺 介紹 創建該PoC的目的是了解驅動漏洞利用程序的強大功能&#xff0c;以及EDR如何使用內核回調以防止惡意軟件的攻擊。…

從零搭建Cloud Alibaba (下) Sentinel篇

1.Sentinel控制臺的安裝 下載地址&#xff1a; Releases alibaba/Sentinelx 下載后是一個jar包 進入目錄 CMD命令 java -jar "sentinel-dashboard-1.8.8 .jar" 如果發生了端口沖突則使用以下命令啟動 修改端口號為8090 java -Dserver.port8090 -jar "sen…

Numpy科學計算與數據分析:Numpy數學函數入門與實踐

Numpy數學函數實戰&#xff1a;探索數學運算的無限可能 學習目標 通過本課程的學習&#xff0c;學員將掌握Numpy中常用的數學函數&#xff0c;包括三角函數、指數函數和對數函數的使用方法&#xff0c;以及如何利用這些函數對數組進行高效的數學運算。本課程不僅會講解理論知識…

BIGO Ads是什么?BIGO廣告營銷核心玩法解析

在全球化競爭白熱化的當下&#xff0c;BIGO Ads憑借其覆蓋150國家的龐大流量池和AI驅動的精準營銷能力&#xff0c;已成為出海企業突破增長瓶頸的利器。2025年Q1數據顯示&#xff0c;BIGO Ads廣告業務同比增長27%&#xff0c;非直播收入占比達24.9%&#xff0c;成為歡聚集團第二…

人工智能領域、圖歐科技、IMYAI智能助手2025年3月更新月報

2025年3月AI領域重要技術進展與平臺更新概覽 2025年3月&#xff0c;人工智能領域迎來一系列重要技術更新與平臺功能迭代&#xff0c;尤其在多模態模型、圖像生成編輯、視頻生成、大型語言模型&#xff08;LLM&#xff09;性能提升等方面表現活躍。以下是對關鍵進展的梳理&#…

STM32HAL 快速入門(一):點燈前的準備 —— 從軟件安裝到硬件原理

前言 大家好&#xff0c;這里是 Hello_Embed。嵌入式開發的 “Hello World” 是點燈 —— 通過控制單片機引腳的高低電平&#xff0c;讓 LED 亮滅。要實現這個功能&#xff0c;前期準備必不可少&#xff1a;從軟件安裝到硬件原理理解&#xff0c;每一步都很關鍵。本文就來詳細說…

Python網絡編程技術

一、網絡編程基礎概念 1.1 什么是網絡編程&#xff1f; 定義&#xff1a;程序通過網絡與其他程序進行通信的技術。核心目標&#xff1a;實現數據在不同主機或進程間的傳輸與交互。應用場景&#xff1a;Web服務、API調用、實時通信、分布式系統等。 1.2 網絡通信模型 OSI七層…

基于PHP的快遞管理系統的設計與實現

管理員&#xff1a;登錄&#xff1a;管理員可以通過用戶名和密碼登錄系統&#xff0c;進入管理員后臺管理界面。個人中心&#xff1a;管理員可以查看和編輯個人信息&#xff0c;如姓名、聯系方式等。用戶管理&#xff1a;管理員可以管理系統中的用戶信息&#xff0c;包括添加新…

WPF的C1FlexGrid的單元格回車換行輸入

重寫C1FlexGrid的按鍵事件PreviewKeyDown"flex_PreviewKeyUp" 定義按鍵方法private void flex_PreviewKeyUp(object sender, KeyEventArgs e){if (e.Key Key.Enter){// 獲取當前編輯的單元格var cell CfgReviewItem.Selection;if (cell.Column > 0 && …

簡單部署普羅米修斯(Promethus)與Grafana配置

環境信息&#xff1a;系統版本ubuntu2404k8s版本v1.22.2promethus節點IP192.168.31.210Grafana節點IP192.168.31.210node1節點IP192.168.31.214node2節點IP192.168.31.215部署Promethus&#xff08;https://prometheus.io/download/&#xff09; wget https://ghfast.top/https…

Redis 編譯錯誤:缺少靜態庫文件,如何解決?

目錄 一、問題背景 二、問題分析 三、解決方案&#xff1a;手動編譯缺失依賴 四、重新編譯 Redis 主程序 五、小結與補充建議 一、問題背景 在從源代碼編譯 Redis&#xff08;如 8.0.3 版本&#xff09;時&#xff0c;很多開發者可能會遇到如下錯誤信息&#xff1a; /us…

vscode+latex本地英文期刊環境配置

1、首先進行vscode的配置安裝&#xff0c;這個網上很多教程直接安裝就可以&#xff0c;我建議安裝vscode就行&#xff08;https://code.visualstudio.com/Download&#xff09;&#xff0c;vs studio稍微有點復雜而且有點大沒必要&#xff0c;單寫論文和簡單的代碼編譯&#xf…