redis和redission的區別

Redis 和 Redisson 是兩個密切相關但又本質不同的技術,它們扮演著完全不同的角色:

  1. Redis: 內存數據庫/數據結構存儲

    • 本質:?它是一個開源的、高性能的、基于內存的?鍵值存儲數據庫。它也可以將數據持久化到磁盤。

    • 核心功能:?提供豐富的數據結構(字符串、哈希、列表、集合、有序集合、位圖、HyperLogLogs、地理空間索引、流等)及其操作命令。

    • 用途:

      • 緩存(加速數據訪問)

      • 會話存儲

      • 消息隊列(使用列表或發布/訂閱)

      • 排行榜(使用有序集合)

      • 實時分析

      • 分布式鎖(需要自己組合命令實現,如 SETNX)

      • 作為主數據庫或輔助數據庫

    • 定位:?存儲引擎。它是數據實際存儲和處理的地方。

  2. Redisson: Java 的 Redis 客戶端和分布式服務框架

    • 本質:?它是一個用 Java 編寫的、功能豐富的?客戶端庫,用于連接和操作 Redis 服務器。但它遠不止于一個簡單的客戶端。

    • 核心功能:

      • 連接管理:?提供強大的、可配置的連接池和連接管理。

      • Redis 命令封裝:?以 Java 對象(RList,?RMap,?RSet,?RScoredSortedSet?等)的形式,提供對 Redis 所有數據結構和命令的自然映射。開發者使用 Java 集合接口就能操作 Redis。

      • 分布式對象和服務:?這是 Redisson 最強大的部分。它基于 Redis 實現了多種分布式 Java 對象和服務:

        • 分布式鎖 (RLock):?可重入鎖、公平鎖、聯鎖、紅鎖等,比用原生 Redis 命令實現更健壯、更方便。

        • 分布式同步器:?信號量 (RSemaphore)、閉鎖 (RCountDownLatch)、可過期信號量 (RPermitExpirableSemaphore)。

        • 分布式集合:?多值映射 (RMultimap)、集合緩存 (RSetCache)、列表緩存 (RListCache)、映射緩存 (RMapCache)。

        • 分布式消息隊列:?基于 Redis 的阻塞隊列 (RBlockingQueue)、延遲隊列 (RDelayedQueue)、主題(發布/訂閱)。

        • 分布式執行服務:?遠程服務 (RRemoteService)、執行器服務 (RExecutorService)。

        • 分布式實時對象 (RLiveObject):?自動將 Java 對象映射到 Redis。

        • Bloom Filter (RBloomFilter):?分布式布隆過濾器。

        • HyperLogLog (RHyperLogLog)

      • 異步與響應式支持:?提供?Async?接口和?Reactive?(RxJava2/3, Project Reactor) 接口。

      • Redis 集群/哨兵/主從支持:?內置對 Redis 各種部署模式的支持。

      • Spring 集成:?提供與 Spring Cache, Spring Data Redis, Spring Session 等的良好集成。

    • 定位:?客戶端庫?+?分布式中間件框架。它讓你用 Java 以更高級、更符合 Java 習慣的方式(尤其是利用分布式對象)去使用 Redis,并在分布式環境中提供線程安全的操作。

關鍵區別總結:

特性RedisRedisson
本質數據庫/存儲引擎Java 客戶端庫?+?分布式服務框架
做什么存儲數據、執行命令連接 Redis、封裝命令、提供分布式 Java 對象和服務
角色服務器端 (Server)客戶端庫 (Client Library)
核心價值高性能內存數據結構存儲簡化 Java 訪問 Redis、提供分布式編程抽象
主要接口Redis CLI / 各種語言的低級客戶端命令豐富的 Java 對象 (RMap,?RLock,?RQueue?等)
分布式能力本身是單點;集群模式提供分布式存儲能力基于 Redis 構建分布式 Java 對象和同步機制
使用場景需要鍵值存儲、緩存、隊列等基礎設施的地方Java 應用中需要方便、健壯地使用 Redis 和分布式服務的地方
關系基礎?- 提供存儲和核心能力上層封裝?- 讓 Java 應用更優雅、高效地利用 Redis

簡單類比:

  • Redis?就像是一個功能強大的倉庫(存儲各種貨物/數據)。

  • Redisson?就像是:

    • 一個給 Java 程序員用的、專門操作這個倉庫的高級叉車和自動化管理系統(連接管理、數據操作封裝)。

    • 并且在這個倉庫的基礎上,搭建了一個分布式協作平臺(分布式鎖、信號量、隊列等服務),讓不同的 Java 程序(工人)可以安全、協調地在這個倉庫里工作。

結論:

  • 沒有 Redis,Redisson 就沒有存在的基礎。

  • Redisson 極大地簡化了 Java 開發者使用 Redis 的復雜度,尤其是在需要實現分布式協調、同步和高級數據結構的場景下。它避免了開發者直接處理底層的 Redis 命令組合、連接管理、線程安全和分布式算法實現的復雜性。

  • 不會在 Redis 和 Redisson 之間二選一。你需要 Redis 服務器來運行,然后在你的 Java 應用中選擇使用哪個客戶端庫來連接它。Redisson 是其中一個功能極其強大且專注于分布式服務的 Java 客戶端選擇(其他常見的有 Jedis, Lettuce)。

所以,當你在項目中看到 Redisson,它意味著開發者正在使用一個高級的 Java 庫來更方便、更可靠地利用 Redis 作為存儲,并且很可能在利用它提供的分布式服務(如分布式鎖)來構建分布式應用。

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

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

相關文章

AIStarter 4.0 蘋果版體驗評測|輕松部署 ComfyUI 與 DeepSeek 的 AI 工具箱

最近在測試一款名為 AIStarter 4.0 的 AI 工具管理平臺,主要用于在 Mac 系統上快速部署各類開源 AI 項目,如 ComfyUI 和 DeepSeek ,非常適合開發者、設計師及 AI 入門者使用。 通過簡單的拖拽操作即可完成安裝,支持普通下載與網盤…

ArcGIS Pro 3.4 二次開發 - 圖形圖層

環境:ArcGIS Pro SDK 3.4 + .NET 8 文章目錄 圖形圖層1.1 創建圖形圖層1.2 訪問GraphicsLayer1.3 復制圖形元素1.4 移除圖形元素2 創建圖形元素2.1 使用CIMGraphic創建點圖形元素2.2 使用CIMGraphic創建線圖元素2.3 使用 CIMGraphic 的多邊形圖形元素2.4 使用CIMGraphic創建多…

《廣度優先搜索》題集

1、模板題集 聚合一塊 2、課內題集 尋找圖中是否存在路徑 鑰匙和房間 受限條件下可到達節點的數目 3、課后題集 最少操作數 社交網絡新來的朋友 Ignatius and the Princess I Collect More Jewels Gap Nightmare Remainder Ferry Loading III 連連看 詭異的樓梯 Open the …

界面組件DevExpress WPF中文教程:Grid - 如何獲取行句柄?

DevExpress WPF擁有120個控件和庫,將幫助您交付滿足甚至超出企業需求的高性能業務應用程序。通過DevExpress WPF能創建有著強大互動功能的XAML基礎應用程序,這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。 無論是Office辦公軟件…

零跑汽車5月交付45067臺車,同比增長超148%

零跑汽車在5月交付新車45,067輛,同比大增148%,連續5個月實現單月交付量增長,穩居新勢力交付量第一位置。今年1-5月,零跑累計交付新車達173,658輛,展現出強勁的市場競爭力和產品實力。 根據Q1財報,零跑不僅營…

netty中的粘包問題詳解

一起來學netty 一、粘包問題的本質二、粘包問題的成因三、Netty中的解決方案1. 固定長度解碼器(FixedLengthFrameDecoder)2. 行分隔符解碼器(LineBasedFrameDecoder)3. 分隔符解碼器(DelimiterBasedFrameDecoder)4. 長度字段解碼器(LengthFieldBasedFrameDecoder)四、解…

【基礎算法】枚舉(普通枚舉、二進制枚舉)

文章目錄 一、普通枚舉1. 鋪地毯(1) 解題思路(2) 代碼實現 2. 回文日期(1) 解題思路思路一:暴力枚舉思路二:枚舉年份思路三:枚舉月日 (2) 代碼實現 3. 掃雷(2) 解題思路(2) 代碼實現 二、二進制枚舉1. 子集(1) 解題思路(2) 代碼實現 2. 費解的…

利用ngx_stream_return_module構建簡易 TCP/UDP 響應網關

一、模塊概述 ngx_stream_return_module 提供了一個極簡的指令&#xff1a; return <value>;在收到客戶端連接后&#xff0c;立即將 <value> 寫回并關閉連接。<value> 支持內嵌文本和內置變量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…

Java如何權衡是使用無序的數組還是有序的數組

在 Java 中,選擇有序數組還是無序數組取決于具體場景的性能需求與操作特點。以下是關鍵權衡因素及決策指南: ?? 核心權衡維度 維度有序數組無序數組查詢性能二分查找 O(log n) ?線性掃描 O(n) ?插入/刪除需移位維護順序 O(n) ?直接操作尾部 O(1) ?內存開銷與無序數組相…

學習日記-day24-6.8

完成內容&#xff1a; 知識點&#xff1a; 1.網絡編程_TCP編程 ### 編寫客戶端1.創建Socket對象,指明服務端的ip以及端口號 2.調用socket中的getOutputStream,往服務端發送請求 3.調用socket中的getInputStream,讀取服務端響應回來的數據 4.關流public class Client {public…

JavaScript 核心對象深度解析:Math、Date 與 String

JavaScript 作為 Web 開發的核心語言&#xff0c;提供了豐富的內置對象來簡化編程工作。本文將深入探討三個重要的內置對象&#xff1a;Math、Date 和 String&#xff0c;通過詳細的代碼示例和綜合案例幫助你全面掌握它們的用法。 一、Math 對象 Math 對象提供了一系列靜態屬…

HarmonyOS開發:設備管理使用詳解

目錄 前言 設備管理概述 設備管理組成 1、電量信息 &#xff08;1&#xff09;導入模塊 &#xff08;2&#xff09;屬性信息 &#xff08;3&#xff09;常用屬性 &#xff08;4&#xff09;使用示例 2、設備信息 &#xff08;1&#xff09;導入模塊 &#xff08;2&a…

el-select下拉框 添加 el-checkbox 多選框

效果 vue <el-select v-model"value" multiple style"width: 100%" popper-class"select-popover-class" placeholder"請選擇試驗項目"><el-option v-for"item in options" :key"item.value" :value&qu…

Memory Repair (三)

Top-Level Verification and Pattern Generation 本節涵蓋 fuse box 編程、頂層 BISR&#xff08;內置自修復&#xff09;驗證以及生產測試 pattern 的生成 Fuse Box Programming 通過 BISR controller 對 fuse box 進行編程的兩種方法如下&#xff1a; ? 采用 Autonomous mod…

通過Wrangler CLI在worker中創建數據庫和表

官方使用文檔&#xff1a;Getting started Cloudflare D1 docs 創建數據庫 在命令行中執行完成之后&#xff0c;會在本地和遠程創建數據庫&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到數據庫&#xff1a; 現在&#xff0c;您的Cloudfla…

谷歌aab怎么轉 apk

一、環境搭建&#xff1a; 1、搭建 java 環境&#xff1b;2、安裝 AndroidStudio&#xff1b;3、下載 bundletool&#xff08;地址&#xff1a;Releases google/bundletool GitHub&#xff09;&#xff1b;4、確定本地有沒有簽名文件&#xff0c;mac電腦一般在/users/ 自己的…

04-初識css

一、css樣式引入 1.1.內部樣式 <div style"width: 100px;"></div>1.2.外部樣式 1.2.1.外部樣式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部樣式2 <!-- rel內表面引入的是style樣…

AWS EKS 集群日志上報觀測云實踐

AWS Lambda 介紹 AWS Lambda 是亞?遜提供的?種?服務器計算服務。它允許開發?員在?需管理服務器的情況下運?代碼。AWS Lambda 基于事件驅動的模型&#xff0c;當觸發指定的事件時&#xff0c;Lambda 會?動執?相應的代碼邏輯。 Amazon CloudWatch 日志 CloudWatch 日志…

瀏覽器指紋科普 | 端口掃描保護是什么?

&#x1f50d; 什么是“端口”&#xff1f; 每臺電腦都像一個辦公大樓&#xff0c;端口就像是不同的房間號。不同軟件&#xff08;比如瀏覽器、代理、遠程控制工具&#xff09;會用不同的端口來“對外溝通”。 比如&#xff1a; 瀏覽網頁可能用端口 80 或 443 用代理軟件或某…

傲軟錄屏:輕松錄制,高效分享

在數字內容創作和在線教育日益流行的今天&#xff0c;屏幕錄制已成為許多人表達創意、分享知識的重要方式。無論是制作教學視頻、記錄游戲過程&#xff0c;還是進行遠程會議記錄&#xff0c;一款簡單易用且功能強大的屏幕錄制軟件都是不可或缺的。傲軟錄屏正是這樣一款能夠滿足…