簡單了解redis常見客戶端及Sharding機制原理
1、redis的幾種常見客戶端:
Jedis:是Redis的Java實現(xiàn)客戶端,提供了比較全面的Redis命令的支持;
Redisson:實現(xiàn)了分布式和可擴展的Java數(shù)據結構。
Lettuce:高級Redis客戶端,用于線程安全同步,異步和響應使用,支持集群,Sentinel,管道和編碼器。
1)優(yōu)點:
- Jedis:比較全面的提供了Redis的操作特性
- Redisson:促使使用者對Redis的關注分離,提供很多分布式相關操作服務,例如,分布式鎖,分布式集合,可通過Redis支持延遲隊列
- Lettuce:主要在一些分布式緩存框架上使用比較多
2)可伸縮:
- Jedis:使用阻塞的I/O,且其方法調用都是同步的,程序流需要等到sockets處理完I/O才能執(zhí)行,不支持異步。Jedis客戶端實例不是線程安全的,所以需要通過連接池來使用Jedis。
- Redisson:基于Netty框架的事件驅動的通信層,其方法調用是異步的。Redisson的API是線程安全的,所以可以操作單個Redisson連接來完成各種操作
- Lettuce:基于Netty框架的事件驅動的通信層,其方法調用是異步的。Lettuce的API是線程安全的,所以可以操作單個Lettuce連接來完成各種操作
2、redis的Sharding機制與技術:
1) Sharding機制:即通常所說的“分片”,允許數(shù)據存放在不同的物理機器上,以適應數(shù)據量過大的場景,克服單臺機器內存或者磁盤空間的限制。
而這種“離散式”地存放,對客戶端來說是透明的,對客戶端來講,完全看不到這種差別。
2) Redis的分片(Sharding或者Partitioning)技術:是指將數(shù)據分散到多個Redis實例中的方法,分片之后,每個redis擁有一部分原數(shù)據集的子集。
在數(shù)據量非常大時,這種技術能夠將數(shù)據量分散到若干主機的redis實例上,進而減輕單臺redis實例的壓力。分片技術能夠以更易擴展的方式使用多臺計算機的存儲能力(這里主要指內存的存儲能力)和計算能力:
a.從存儲能力的角度,分片技術通過使用多臺計算機的內存來承擔更大量的數(shù)據,如果沒有分片技術,那么redis的存儲能力將受限于單臺主機的內存大小。
b.從計算能力的角度,分片技術通過將計算任務分散到多核或者多臺主機中,能夠充分利用多核、多臺主機的計算能力。
3、緩存客戶端與服務器:
- redis是開源的緩存軟件,jedis是java連接redis的客戶端jar包
- zedis是sn在redis 2.8版本上進行修改定制的緩存服務器軟件
- sedis是sn在jedis版本上定制的緩存客戶端軟件
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
IDEA?2021.3?使用及idea2021.3.1激活使用方法
IDEA?全稱?IntelliJ?IDEA,是java語言開發(fā)的集成環(huán)境,IntelliJ在業(yè)界被公認為最好的java開發(fā)工具之一,今天通過本文給大家介紹idea2021.3.1激活及使用教程,感興趣的朋友一起看看吧2022-01-01詳解Mybatis中的 ${} 和 #{}區(qū)別與用法
這篇文章主要介紹了Mybatis中的 ${} 和 #{}區(qū)別與用法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-072020.2 IntelliJ IDEA激活與IDEA2020.2破解詳細教程
這篇文章主要介紹了2020.2 IntelliJ IDEA激活與IDEA2020.2破解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08