簡單了解redis常見客戶端及Sharding機制原理
1、redis的幾種常見客戶端:
Jedis:是Redis的Java實現(xiàn)客戶端,提供了比較全面的Redis命令的支持;
Redisson:實現(xiàn)了分布式和可擴展的Java數(shù)據(jù)結(jié)構(gòu)。
Lettuce:高級Redis客戶端,用于線程安全同步,異步和響應(yīng)使用,支持集群,Sentinel,管道和編碼器。
1)優(yōu)點:
- Jedis:比較全面的提供了Redis的操作特性
- Redisson:促使使用者對Redis的關(guān)注分離,提供很多分布式相關(guān)操作服務(wù),例如,分布式鎖,分布式集合,可通過Redis支持延遲隊列
- Lettuce:主要在一些分布式緩存框架上使用比較多
2)可伸縮:
- Jedis:使用阻塞的I/O,且其方法調(diào)用都是同步的,程序流需要等到sockets處理完I/O才能執(zhí)行,不支持異步。Jedis客戶端實例不是線程安全的,所以需要通過連接池來使用Jedis。
- Redisson:基于Netty框架的事件驅(qū)動的通信層,其方法調(diào)用是異步的。Redisson的API是線程安全的,所以可以操作單個Redisson連接來完成各種操作
- Lettuce:基于Netty框架的事件驅(qū)動的通信層,其方法調(diào)用是異步的。Lettuce的API是線程安全的,所以可以操作單個Lettuce連接來完成各種操作
2、redis的Sharding機制與技術(shù):
1) Sharding機制:即通常所說的“分片”,允許數(shù)據(jù)存放在不同的物理機器上,以適應(yīng)數(shù)據(jù)量過大的場景,克服單臺機器內(nèi)存或者磁盤空間的限制。
而這種“離散式”地存放,對客戶端來說是透明的,對客戶端來講,完全看不到這種差別。
2) Redis的分片(Sharding或者Partitioning)技術(shù):是指將數(shù)據(jù)分散到多個Redis實例中的方法,分片之后,每個redis擁有一部分原數(shù)據(jù)集的子集。
在數(shù)據(jù)量非常大時,這種技術(shù)能夠?qū)?shù)據(jù)量分散到若干主機的redis實例上,進而減輕單臺redis實例的壓力。分片技術(shù)能夠以更易擴展的方式使用多臺計算機的存儲能力(這里主要指內(nèi)存的存儲能力)和計算能力:
a.從存儲能力的角度,分片技術(shù)通過使用多臺計算機的內(nèi)存來承擔(dān)更大量的數(shù)據(jù),如果沒有分片技術(shù),那么redis的存儲能力將受限于單臺主機的內(nèi)存大小。
b.從計算能力的角度,分片技術(shù)通過將計算任務(wù)分散到多核或者多臺主機中,能夠充分利用多核、多臺主機的計算能力。
3、緩存客戶端與服務(wù)器:
- redis是開源的緩存軟件,jedis是java連接redis的客戶端jar包
- zedis是sn在redis 2.8版本上進行修改定制的緩存服務(wù)器軟件
- sedis是sn在jedis版本上定制的緩存客戶端軟件
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL?MyBatis?默認插入當(dāng)前時間方式
這篇文章主要介紹了MySQL?MyBatis?默認插入當(dāng)前時間方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
Java的CyclicBarrier循環(huán)屏障解析
這篇文章主要介紹了Java的CyclicBarrier循環(huán)屏障解析,CyclicBarrier和CountDownLatch一樣,是一個同步工具類,它允許一組線程相互等待直到達到某個common?barrier?point,在程序中CyclicBarrier是非常有用的,它適用于一組線程必須互相等待的情況,需要的朋友可以參考下2023-12-12
Java將Word文檔轉(zhuǎn)換為PDF文件的幾種常用方法總結(jié)
這篇文章主要介紹了Java將Word文檔轉(zhuǎn)換為PDF文件的四種常用方法,分別使用ApachePOI+iText、Aspose.Words?for?Java、Docx4j和JODConverter,這些庫各有優(yōu)點,但在使用時需要注意庫與Java環(huán)境的兼容性、安裝所需依賴、轉(zhuǎn)換速度和資源消耗,需要的朋友可以參考下2024-10-10

