【Redis】Linux 配置Redis

一、Redis介紹

Redis(Remote Dictionary Server)是一款開源的、高性能的鍵值對(Key-Value)存儲數據庫,由 Salvatore Sanfilippo 于 2009 年開發,采用 ANSI C 語言編寫。它以內存存儲為核心,支持數據持久化,同時提供了豐富的數據結構和靈活的功能,廣泛應用于緩存、會話存儲、消息隊列、實時分析等場景。

在這里插入圖片描述

1.1 Redis 的特點

  1. 高性能

    • 所有數據默認存儲在內存中,讀寫速度極快(單機 QPS 可達 10 萬 +),遠超磁盤數據庫(如 MySQL)。
    • 采用單線程模型(避免多線程上下文切換開銷),結合 IO 多路復用機制,高效處理并發請求。
  2. 豐富的數據結構
    支持多種原生數據結構,滿足復雜業務需求:

    • 字符串(String):最基礎的鍵值類型,可存儲文本、數字或二進制數據(最大 512MB)。
    • 哈希(Hash):適合存儲對象(如用戶信息),鍵值對的集合。
    • 列表(List):有序字符串集合,支持兩端插入 / 刪除,可實現隊列、棧等結構。
    • 集合(Set):無序且唯一的字符串集合,支持交集、并集等運算。
    • 有序集合(Sorted Set):類似 Set,但每個元素關聯一個分數(Score),可按分數排序(如排行榜)。
    • 其他:BitMap(位圖)、HyperLogLog(基數統計)、Geospatial(地理位置)等。
  3. 數據持久化
    雖然數據存儲在內存中,但 Redis 提供兩種持久化方式,避免宕機后數據丟失:

    • RDB(Redis Database):定期將內存中的數據快照寫入磁盤(二進制文件),適合備份和災難恢復。
    • AOF(Append Only File):記錄所有寫操作到日志文件,重啟時重新執行日志恢復數據,可靠性更高(可配置刷盤策略)。
  4. 高可用與擴展性

    • 主從復制(Master-Slave):主節點寫入數據,從節點同步并提供讀服務,實現讀寫分離和故障備份。
    • 哨兵模式(Sentinel):監控主從節點狀態,當主節點故障時自動將從節點升級為主節點,保證高可用。
    • 集群模式(Cluster):將數據分片存儲在多個節點,支持橫向擴展(最多 16384 個節點),解決單機內存和性能瓶頸。
  5. 原子操作與事務

    • 所有單個命令都是原子性的,支持通過MULTIEXEC等命令實現簡單事務(批量執行命令,要么全成功,要么全失敗)。
    • 提供WATCH命令實現樂觀鎖,用于并發場景下的數據一致性控制。
  6. 其他特性

    • 過期鍵刪除:支持為鍵設置過期時間,自動刪除過期數據(基于惰性刪除 + 定期刪除策略)。
    • 發布訂閱(Pub/Sub):實現簡單的消息隊列功能,支持消息的發布與訂閱。
    • Lua 腳本:支持嵌入 Lua 腳本執行,實現復雜邏輯的原子性操作。
    • 跨平臺:可在 Linux、Windows、macOS 等系統運行,且客戶端語言豐富(Java、Python、Go 等均有成熟庫)。

1.2 Redis應用場景

  1. 緩存:存儲熱點數據(如商品信息、用戶會話),減少數據庫訪問壓力,提升讀性能。
  2. 會話存儲:替代傳統的 Cookie 或服務器本地會話,實現分布式系統中的會話共享。
  3. 計數器與排行榜:利用INCR命令實現點贊數、訪問量統計,通過Sorted Set實現實時排行榜。
  4. 消息隊列:基于ListLPUSH/RPOP或 Pub/Sub 實現簡單的消息傳遞。
  5. 分布式鎖:通過SETNX(SET if Not Exists)命令實現分布式環境下的資源競爭控制。
  6. 地理位置服務:利用GEO系列命令實現附近的人、距離計算等功能。

二、配置Redis

這里介紹在Ubuntu下載并配置Redis

2.1 下載Redis

Redis官網下載,這里選擇下載7.0.5版本:http://download.redis.io/releases/redis-7.0.5.tar.gz

下載完成后解壓到當前目錄下:

tar -zxvf redis-7.05.tar.gz

進入到對應的解壓后的文件夾下,里面有Makefile文件

cd redis-7.05

2.2 編譯Redis

Makefile文件路徑下執行make進行編譯,編譯完成后使用make install安裝到默認路徑下

make -j4 && sudo make install

Redis默認安裝到/usr/local/bin目錄下,安裝后有redis-server服務器和redis-cli客戶端

ls /usr/local/bin | grep redis

在這里插入圖片描述

2.3 設置配置文件

啟動Redis的時候需要指定配置文件,我們這里創建一個配置文件的目錄,用于存放Redis的配置文件

cd /usr/local/bin
sudo mkdir redisconf

實際上,剛剛解壓的文件夾中存在默認的Redis配置,即redis.conf文件,我們將它拷貝到我們的文件夾中

sudo cp ~/redis-7.0.5/redis.conf ./redisconf/

下面是常見的Redis配置,如有需要可以修改配置文件

# 允許訪問的地址,默認是127.0.0.1,會導致只能在本地訪問。修改為0.0.0.0則可以在任意IP訪問,生產環境不要設置為0.0.0.0
bind 0.0.0.0
# 守護進程,修改為yes后即可后臺運行
daemonize yes 
# 密碼,設置后訪問Redis必須輸入密碼
requirepass 123456
# 監聽的端口
port 6379
# 工作目錄,默認是當前目錄,也就是運行redis-server時的命令,日志、持久化等文件會保存在這個目錄
dir .
# 數據庫數量,設置為1,代表只使用1個庫,默認有16個庫,編號0~15
databases 1
# 設置redis能夠使用的最大內存
maxmemory 512mb
# 日志文件,默認為空,不記錄日志,可以指定日志文件名
logfile "redis.log"

2.4 啟動Redis

啟動Redis服務器,指定我們的配置文件,啟動完成后的服務器輸出如下:

redis-server /usr/local/bin/redisconf/redis.conf

在這里插入圖片描述

啟動客戶端,這里我們可以使用-p指定端口,如果不指定,就使用默認的端口6379

redis-cli -p 6379

查看進程信息,確保啟動了Redis

ps -aux | grep redis

在這里插入圖片描述

2.5 測試Redis

Redis客戶端redis-cli輸入info,查看對應的Redis信息

info

在這里插入圖片描述

更多資料:https://github.com/0voice

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

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

相關文章

MongoDB數據庫高并發商業實踐優化·運行優化之不可使用root賬戶進行MongoDB運行-優雅草卓伊凡

MongoDB數據庫高并發商業實踐優化運行優化之不可使用root賬戶進行MongoDB運行-優雅草卓伊凡 引言 關于最近優雅草卓伊凡發布關于MongoDB的內容是由于我們的甲方上線了一個很老的產品,但是他的用戶量極大,并且還有各種人搞事情,不斷的來GJ&a…

戴爾電腦 Linux 安裝與配置指南_導入mysql共享文件夾

本指南將詳細介紹在戴爾電腦上安裝 Linux 操作系統的步驟,以及后續的重要配置,包括系統選擇、安裝流程、MySQL 數據恢復、網絡配置、文件共享和遠程維護等。步驟清晰且配有命令行示例和配置文件示例,適合初中級用戶參考。1、Linux 系統選擇與…

昇思學習營-DeepSeek-R1-Distill-Qwen-1.5B 模型LoRA微調學習心得

LoRA微調:加入參數式微調凍結原始網絡參數,對Attention層中QKV等添加旁支,包含兩個低維度的矩陣A和矩陣B,微調過程中僅更新A、B 矩陣效果:訓練參數被大幅降低,資源消耗較低。對attention的參數加入如下圖所…

彩色轉灰度的核心邏輯:三種經典方法及原理對比

灰度實驗將彩色圖像轉換為灰度圖像的過程稱為灰度化,這種做法在圖像處理和計算機視覺領域非常常見。灰度圖與彩色圖最大的不同就是:彩色圖是由R、G、B三個通道組成,而灰度圖只有一個通道,也稱為單通道圖像,所以彩色圖轉…

Spring Boot 項目啟動自動執行邏輯的最佳實踐:掌握 CommandLineRunner

前言 Spring Boot 啟動階段,總有些操作迫不及待沖在前線:配置要加載,數據要準備,日志要搶首發,仿佛個個爭當“啟動 MVP”。如果你也想讓項目一啟動就自動開工,少寫點手動觸發的“苦力邏輯”,那 CommandLineRunner 就是你的得力助手。它像那個永遠第一個打卡的同事,不喝…

高可用集群KEEPALIVED的詳細部署

一.高可用集群 1.1 集群類型 LB:Load Balance 負載均衡 LVS/HAProxy/nginx(http/upstream, stream/upstream) HA:High Availability 高可用集群 數據庫、Redis SPoF: Single Point of Failure,解決單點故障 HPC&#x…

[論文閱讀] 人工智能 + 軟件工程 | NoCode-bench:評估LLM無代碼功能添加能力的新基準

NoCode-bench:評估LLM無代碼功能添加能力的新基準 論文:NoCode-bench: A Benchmark for Evaluating Natural Language-Driven Feature Addition 研究背景:當AI嘗試給軟件"加新功能",我們需要一張靠譜的"考卷"…

【Git知識】Git 常用知識集合之基礎--分支系統與 Tag 標簽機制

🧰 Git 常用知識集合Git 是程序員的“時間機器”。這份手冊幫你從入門到精通,把 Git 玩明白。1?? Git 基礎操作流程 📌 三步走流程:添加 → 提交 → 推送 git add . # 把所有修改加入暫存區 git commit -m …

深入解析 Spark:關鍵問題與答案匯總

在大數據處理領域,Spark 憑借其高效的計算能力和豐富的功能,成為了眾多開發者和企業的首選框架。然而,在使用 Spark 的過程中,我們會遇到各種各樣的問題,從性能優化到算子使用等。本文將圍繞 Spark 的一些核心問題進行…

Python-初學openCV——對openCV的簡單使用

一、概述1、簡單介紹OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺庫,旨在為實時圖像處理提供強大的功能。它由Intel開發,現由開源社區維護。OpenCV 提供了跨平臺的解決方案,支持 Windows、Linu…

去中心化時代的通信革命:briefing與cpolar技術融合帶來的安全范式革新

文章目錄前言1.關于briefing2.本地部署briefing3.使用briefing4.cpolar內網穿透工具安裝5.創建遠程連接公網地址6.固定briefing公網地址前言 數字協作本該是提升效率的過程,卻被這些數據管理問題不斷困擾:平臺條款中的監控聲明、跨網絡環境的接入障礙、…

GitHub新手生存指南:AI項目版本控制與協作實戰

點擊 “AladdinEdu,同學們用得起的【H卡】算力平臺”,H卡級別算力,按量計費,靈活彈性,頂級配置,學生專屬優惠。 代碼倉庫創建 分支管理 PR提交 開源項目復現 讀者收獲:掌握團隊開發必備技能…

Axios封裝以及添加攔截器

在前端開發中,http請求層的封裝可以極大提升代碼的復用性和可維護性,本文將完整的用axios封裝接口請求,配置請求與響應攔截器,封裝統一的請求方法全過程。封裝的目的和思路在項目直接用axios發送請求當然沒問題,但是如…

C語言中奇技淫巧04-僅對指定函數啟用編譯優化

相信很多人使用GCC編譯代碼時,都會接觸到gcc -O0/1/2/3/s,知道它可以對工程進行全局優化。 事實上,除了全局優化外,使用GCC擴展方式,我們還可以僅對部分關鍵函數實施差異化編譯優化。 在GCC編譯器中,attrib…

HTML Style 對象深度解析:從基礎到高級應用

一、Style 對象的核心概念定義與作用 Style 對象是 HTML DOM 中用于操作元素內聯樣式的接口,通過 element.style 訪問。它允許動態修改元素的 CSS 屬性,但僅能直接影響內聯樣式(即通過 style 屬性直接寫在標簽中的樣式)。與外部樣…

【C++】定義常量

在 C 中&#xff0c;有兩種簡單的定義常量的方式&#xff1a; 使用 #define 預處理器。使用 const 關鍵字。 #define 預處理器 #include <iostream> using namespace std;#define LENGTH 10 #define WIDTH 5 #define NEWLINE \nint main() {int area; area LENGTH …

基于遺傳算法的多無人車協同偵察與安全保護策略優化

基于遺傳算法的多無人車協同偵察與安全保護策略優化 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家&#xff0c;覺得好請收藏。點擊跳轉到網站。 1. 引言 1.1 研究背景與意義 隨著無人系統技術的快速發…

python面向對象編程詳解

面向對象編程&#xff08;OOP&#xff09;是一種以對象為核心的編程范式。Python全面支持OOP&#xff0c;主要包含以下核心概念&#xff1a;一、類與對象1.類(Class)類是創建對象的模板或藍圖&#xff0c;它定義了對象的屬性和方法。class Dog:# 類屬性&#xff08;所有實例共享…

快速入門Socket編程——封裝一套便捷的Socket編程——導論

快速入門Socket編程——封裝一套便捷的Socket編程——導論 前言 ? 這里是筆者打算做的Socket編程的第二部分&#xff0c;也就是核心的討論我們Socket編程本身。 導論 ? 我們知道&#xff0c;一個經典的服務器套接字的處理流程是如下的&#xff1a; 創建一個指定傳輸層和網絡層…

【Mermaid 離線工具】Mermaid 流程圖生成器 - 高清PNG輸出,一鍵生成專業級流程圖!

文章目錄 Mermaid 流程圖生成器(離線版本):高效繪圖,離線也能玩轉專業可視化 一、Mermaid:文本繪圖的 “魔法語法” 二、離線版生成器:功能與優勢解析 (一)離線可用,場景更靈活 (二)操作流程:簡單五步,產出專業圖表 (三)界面設計:簡潔直觀,降低使用門檻 三、應…