Ubuntu 22.04(WSL2)使用Docker安裝Redis

Ubuntu 22.04(WSL2)使用Docker安裝Redis

本教程將指導您在運行于WSL2的Ubuntu 22.04上通過Docker安裝Redis 7.4.3。您將獲得一個配置了自定義設置、持久化存儲和安全選項的Redis實例。

前提條件

  • WSL2上已安裝Ubuntu 22.04。
  • WSL2上已安裝并運行Docker,確保Docker守護進程已啟動。
  • 熟悉基本的終端命令。

步驟1:創建Redis目錄

為了確保數據持久化和配置管理,創建用于存儲Redis數據和配置文件的目錄。

# /home/redis/data:存儲Redis數據文件(如dump.rdb、appendonly.aof)
# /home/redis/conf:存儲Redis配置文件
mkdir -p /home/redis/data /home/redis/conf

步驟2:準備Redis配置文件

/home/redis/conf目錄下創建redis.conf文件,內容如下。每個參數均附帶注釋說明其作用。

sudo touch redis.conf
chmod -R 777 /home/redis/*
# 允許來自任何IP地址的連接,WSL2網絡需要此設置
bind 0.0.0.0
# 設置認證密碼,替換your_password為強密碼
requirepass your_password
# 禁用保護模式以允許外部連接
protected-mode no
# TCP連接隊列長度,建議值511
tcp-backlog 511
# 客戶端空閑超時時間(秒),0表示無限制
timeout 0
# TCP保活時間(秒),檢測客戶端連接狀態
tcp-keepalive 300
# 是否以守護進程方式運行,Docker環境設置為no
daemonize no
# 是否啟用系統監督,Docker環境設置為no
supervised no
# 日志級別,notice為標準信息級別
loglevel notice
# 日志文件路徑,空字符串表示輸出到標準輸出
logfile ""
# 數據庫數量,默認為16,此處設置為30
databases 30
# 是否在啟動時顯示Redis logo
always-show-logo yes
# 快照保存策略:900秒內至少1次更改觸發
save 900 1
# 快照保存策略:300秒內至少10次更改觸發
save 300 10
# 快照保存策略:60秒內至少10000次更改觸發
save 60 10000
# 后臺保存失敗時是否停止寫入
stop-writes-on-bgsave-error yes
# 是否啟用RDB文件壓縮
rdbcompression yes
# 是否在RDB文件中啟用校驗和
rdbchecksum yes
# RDB文件名
dbfilename dump.rdb
# 數據文件存儲目錄,映射到容器/data
dir /data
# 主從復制中,從節點是否提供過期數據
replica-serve-stale-data yes
# 從節點是否為只讀
replica-read-only yes
# 是否啟用無磁盤同步
repl-diskless-sync no
# 是否禁用TCP_NODELAY,影響延遲和吞吐量
repl-disable-tcp-nodelay no
# 從節點優先級,用于主節點選舉
replica-priority 100
# 是否啟用惰性刪除以釋放內存
lazyfree-lazy-eviction no
# 是否在鍵過期時啟用惰性刪除
lazyfree-lazy-expire no
# 是否在刪除服務端鍵時啟用惰性刪除
lazyfree-lazy-server-del no
# 是否在從節點刷新時啟用惰性刪除
replica-lazy-flush no
# 是否啟用追加日志文件(AOF)持久化
appendonly yes
# AOF文件名
appendfilename "appendonly.aof"
# 是否在AOF重寫時禁用fsync
no-appendfsync-on-rewrite no
# AOF自動重寫觸發百分比
auto-aof-rewrite-percentage 100
# AOF自動重寫最小大小
auto-aof-rewrite-min-size 64mb
# 是否加載截斷的AOF文件
aof-load-truncated yes
# 是否在AOF中使用RDB前綴
aof-use-rdb-preamble yes
# Lua腳本執行時間限制(毫秒)
lua-time-limit 5000
# 慢查詢日志最大條目數
slowlog-max-len 128
# 鍵空間事件通知,空字符串表示禁用
notify-keyspace-events ""
# Hash數據結構使用ziplist的鍵最大數量
hash-max-ziplist-entries 512
# Hash數據結構使用ziplist的值最大長度
hash-max-ziplist-value 64
# List數據結構使用ziplist的最大大小
list-max-ziplist-size -2
# List數據結構壓縮深度
list-compress-depth 0
# Set數據結構使用intset的最大條目數
set-max-intset-entries 512
# Zset數據結構使用ziplist的鍵最大數量
zset-max-ziplist-entries 128
# Zset數據結構使用ziplist的值最大長度
zset-max-ziplist-value 64
# HyperLogLog稀疏表示的最大字節數
hll-sparse-max-bytes 3000
# Stream節點最大字節數
stream-node-max-bytes 4096
# Stream節點最大條目數
stream-node-max-entries 100
# 是否啟用主動重哈希
activerehashing yes
# 服務器運行頻率(Hz),影響性能
hz 10
# 是否啟用動態Hz調整
dynamic-hz yes
# 是否啟用AOF重寫的增量fsync
aof-rewrite-incremental-fsync yes
# 是否啟用RDB保存的增量fsync
rdb-save-incremental-fsync yes
# 最大內存限制,1GB(1073741824字節)
maxmemory 1073741824
# 內存滿時淘汰策略:使用LRU算法淘汰所有鍵
maxmemory-policy allkeys-lru

步驟3:運行Redis Docker容器

使用以下Docker命令啟動Redis容器,加載指定的配置和卷掛載。

# -d:后臺運行容器
# --name redis:容器命名為redis
# -p 6379:6379:映射主機端口6379到容器端口6379
# --restart unless-stopped:容器自動重啟,除非手動停止
# -v /home/redis/data:/data:掛載主機數據目錄到容器/data
# -v /home/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf:掛載配置文件
# redis:7.4.3:使用Redis 7.4.3鏡像
# redis-server /usr/local/etc/redis/redis.conf:使用指定配置文件啟動Redis
docker run -d --name redis -p 6379:6379 --restart unless-stopped \-v /home/redis/data:/data \-v /home/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \redis:7.4.3 redis-server /usr/local/etc/redis/redis.conf

步驟4:驗證安裝

  1. 檢查容器是否正在運行:

    # 顯示運行中的容器列表
    docker ps
    

    您應該看到redis容器在列表中。

  2. 使用redis-cli連接到Redis:

    # 進入容器并啟動redis-cli
    docker exec -it redis redis-cli
    
  3. 使用密碼認證:

    # 使用配置文件中的密碼進行認證
    AUTH your_password
    
  4. 測試Redis功能,設置并獲取一個鍵:

    # 設置鍵值對
    SET testkey "Hello, Redis!"
    # 獲取鍵值
    GET testkey
    

    如果成功,將輸出"Hello, Redis!"

步驟5:從主機訪問Redis

由于WSL2的網絡配置復雜,您可能需要獲取WSL2實例的IP地址以從Windows主機連接。

  1. 查看WSL2的IP地址:

    # 顯示eth0網卡的IP地址
    ip addr show eth0 | grep inet
    

    找到IP地址(如172.18.0.1)。

當然,如果跟之前的一樣,windows操作系統的C:\Users\Administrator\.wslconfig配置了networkingMode=mirrored,我們也可以直接使用 127.0.0.1或者是localhost

  1. 在Windows主機上使用redis-cli或Redis客戶端連接到<WSL2_IP>:6379,并使用密碼認證。

故障排除

  • 容器無法啟動:

    查看日志:

    # 顯示容器日志
    docker logs redis
    

    確保redis.conf 文件權限正確:

    # 設置配置文件權限
    chmod 644 /home/redis/conf/redis.conf
    
  • 連接問題:確認6379端口未被防火墻阻止,且redis.conf中設置了bind 0.0.0.0

  • 權限錯誤:
    確保/home/redis 目錄對Docker用戶可寫:

    # 設置目錄權限(測試用)
    chmod -R 777 /home/redis
    

結論

您已在Ubuntu 22.04(WSL2)上通過Docker成功運行Redis 7.4.3實例,配置了持久化存儲、安全密碼和內存限制。此設置適用于開發或小型生產環境。如需進一步自定義,請參考Redis官方文檔。

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

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

相關文章

淺談 Redis 數據類型

淺談 Redis 數據類型 &#xff08;一&#xff09;String 類型 Redis 的 String 類型 是二進制安全的&#xff0c;可以用來存儲 文本字符串、int 類型數據和 bitmap 位圖 等數據。 1. 字符串操作 適用于存儲 文本、JSON、序列化數據 等任意二進制安全的內容 命令作用示例SET設…

Day1 時間復雜度

一 概念 在 C 中&#xff0c;時間復雜度是衡量算法運行時間隨輸入規模增長的趨勢的關鍵指標&#xff0c;用于評估算法的效率。它通過 大 O 表示法&#xff08;Big O Notation&#xff09; 描述&#xff0c;關注的是輸入規模 n 趨近于無窮大時&#xff0c;算法時間增長的主導因…

PAC文件:智能代理配置的瑞士軍刀

在日常上網和企業網絡環境中&#xff0c;我們經常需要配置代理服務器來訪問特定資源、增強安全性或管理網絡流量。Windows和macOS系統自帶的代理配置通常提供全局代理或簡單的排除列表&#xff0c;這在某些復雜場景下顯得不夠靈活。例如&#xff0c;我們可能只想代理某個特定的…

獲取高德地圖JS API的安全密鑰和Key的方法

要使用高德地圖JavaScript API&#xff0c;您需要獲取API Key和安全密鑰(securityJsCode)。以下是獲取步驟&#xff1a; 1. 注冊高德開放平臺賬號 首先訪問高德開放平臺&#xff0c;如果沒有賬號需要先注冊。 2. 創建應用獲取Key 登錄后進入"控制臺" 點擊"應…

攜程酒店 phantom-token token1004 分析

聲明 本文章中所有內容僅供學習交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包內容、敏感網址、數據接口等均已做脫敏處理&#xff0c;嚴禁用于商業用途和非法用途&#xff0c;否則由此產生的一切后果均與作者無關&#xff01; 部分python代碼 搞APP搞的心態有點崩…

小紅書多賬號運營效率優化:技術方案與自動化實踐

目錄 一、效率瓶頸與流程優化方向 二、技術實現方案與效率提升路徑 1. 多賬號統一管理&#xff1a;環境隔離與批量操作 2. 自動化任務設計&#xff1a;RPA與腳本化執行 四、效果驗證與數據對比 五、總結與開源工具推薦 六、下載地址&#xff1a; 一、效率瓶頸與流程優化…

FastDDS Transport功能模塊初步整理

一. 總體結構 二. 主要類的功能 2.1 TransportDescriptor和TransportInterface ? FastDDS中整個Transport類的設計遵循的是設計模式中的建造者模式&#xff0c;其中&#xff0c;TransportDescriptor就是建造者&#xff0c;而TransportInterface則是建造出來的產品。 ? Tra…

zabbix最新版本7.2超級詳細安裝部署(一)

如果文章對你有用&#xff0c;請留下痕跡在配置過程中有問題請及時留言&#xff0c;本作者可以及時更新文章 目錄 1、提前準備環境 2、zabbix7.2安裝部署 3、安裝并配置數據庫 4、為Zabbix server配置數據庫 5、為Zabbix前端配置PHP 6、啟動Zabbix server和agent進程 7、關閉防…

CodeBlocks調試報錯

嘗試打斷點&#xff0c;并且點擊紅色箭頭啟動debugger時&#xff0c;控制臺報錯 Active debugger config: GDB/CDB debugger:Default Building to ensure sources are up-to-date Selecting target: Debug Adding source dir: C:\Users\Lenovo\Desktop\exercise\ Adding source…

Manus 開放注冊:AI 智能體領域的新起點

2025 年 5 月 13 日成為了一個具有特殊意義的日子 —— 備受矚目的 AI 智能體平臺 Manus&#xff08;Manus&#xff09;正式宣布開放注冊。這一消息猶如一顆重磅炸彈&#xff0c;瞬間在全球科技圈引起了廣泛關注和熱烈討論。在此之前&#xff0c;Manus 一直以其獨特的魅力和極高…

車載網關作為車輛網絡系統的核心樞紐

我是穿拖鞋的漢子&#xff0c;魔都中堅持長期主義的汽車電子工程師。 老規矩&#xff0c;分享一段喜歡的文字&#xff0c;避免自己成為高知識低文化的工程師&#xff1a; 鈍感力的“鈍”&#xff0c;不是木訥、遲鈍&#xff0c;而是直面困境的韌勁和耐力&#xff0c;是面對外界…

俄羅斯方塊算法2025.5.10

問題描述 俄羅斯方塊&#xff08;Tetris&#xff09;作為風靡全球38年的現象級益智游戲&#xff0c;其簡單易學但難于精通的特性使其成為游戲史上的不朽經典。以下是其核心游戲規則解析及我們的要求&#xff1a; 游戲界面由20行10列的可視區域組成&#xff0c;7種不同形狀的四…

Femap許可網絡配置

電磁仿真領域&#xff0c;Femap以其卓越的性能和廣泛的應用場景&#xff0c;成為眾多工程師和科研人員的首選工具。為了滿足多用戶協作的需求&#xff0c;Femap提供了靈活的網絡配置方案。本文將詳細介紹Femap許可網絡配置的方法和優勢&#xff0c;幫助您輕松實現多用戶高效協作…

計算機視覺----時域頻域在圖像中的意義、傅里葉變換在圖像中的應用、卷積核的頻域解釋

1、時域&#xff08;時間域&#xff09;——自變量是時間,即橫軸是時間,縱軸是信號的變化。其動態信號x&#xff08;t&#xff09;是描述信號在不同時刻取值的函數。 2、頻域&#xff08;頻率域&#xff09;——自變量是頻率,即橫軸是頻率,縱軸是該頻率信號的幅度,也就是通常說…

主流高防服務器技術對比與AI防御方案實戰

1. 高防服務器核心能力對比 當前市場主流高防服務商&#xff08;如阿里云、騰訊云、華為云&#xff09;的核心防御能力集中在流量清洗與靜態規則防護&#xff0c;但面臨以下挑戰&#xff1a; 靜態防御瓶頸&#xff1a;傳統方案依賴預定義規則&#xff0c;對新型攻擊&#xff…

常時間運行的程序 導致系統卡頓 自動監控系統CPU和內存利用率 自動選擇 內存回收 軟件重啟 電腦重啟

長時間運行安防系統&#xff0c;導致CPU或內存利用率超80%&#xff0c;使得電腦變的緩慢、卡頓的問題。定時獲取CPU和內存利用率的數據&#xff0c;在不同時間段&#xff08;如凌晨與平時&#xff09;&#xff0c;根據利用率的不同的閾值&#xff0c;進行&#xff1a;內存回收(…

OpenCV播放攝像頭視頻

OpenCV計算機視覺開發實踐&#xff1a;基于Qt C - 商品搜索 - 京東 播放攝像頭視頻和播放視頻文件類似&#xff0c;也是通過類VideoCapture來實現&#xff0c;只不過調用open的時候傳入的是攝像頭的索引號。如果計算機安裝了一個攝像頭&#xff0c;則open的第一個參數通常是0&…

操作系統:內存管理

目錄 1、主要目標 2、核心概念和技術 2.1 物理內存與虛擬內存 2.2 內存分頁機制 2.3 頁面置換算法 3、監控與性能優化 3.1 查看物理內存 3.2 查看虛擬內存 3.3 性能問題 1> 內存不足&#xff08;OOM&#xff09; 2> 內存泄漏 3> 內存碎片 3.4 性能優化策…

專題四:綜合練習( 找出所有子集的異或總和再求和)

以leetcode1863題為例 題目分析&#xff1a; 找到每個子集&#xff0c;然后子集中的元素異或之后全部相加 算法原理分析&#xff1a; 畫決策樹&#xff1a;第一層為這個子集有一個元素 第二層這個子集有兩個元素 從上往下羅列&#xff0c;把所有子集都羅列出來&#xf…

【python】—conda新建python3.11的環境報錯

1.報錯 conda create -n py3.11 python3.11 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ Collecting package metadata: done Solving environment: failed PackagesNotFoundError: The following packages are not available from current channel…