简单了解redis常见客户端及Sharding机制原理

 更新时间:2020年09月27日 10:25:10   作者:爱笑的berg  
这篇文章主要介绍了简单了解redis常见客户端及Sharding机制原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1、redis的几种常见客户端:

Jedis:是Redis的Java实现客户端,提供了比较全面的Redis命令的支持;

Redisson:实现了分布式和可扩展的Java数据结构。

Lettuce:高级Redis客户端,用于线程安全同步,异步和响应使用,支持集群,Sentinel,管道和编码器。

1)优点:

  •   Jedis:比较全面的提供了Redis的操作特性
  •   Redisson:促使使用者对Redis的关注分离,提供很多分布式相关操作服务,例如,分布式锁,分布式集合,可通过Redis支持延迟队列
  •   Lettuce:主要在一些分布式缓存框架上使用比较多

2)可伸缩:

  • Jedis:使用阻塞的I/O,且其方法调用都是同步的,程序流需要等到sockets处理完I/O才能执行,不支持异步。Jedis客户端实例不是线程安全的,所以需要通过连接池来使用Jedis。
  • Redisson:基于Netty框架的事件驱动的通信层,其方法调用是异步的。Redisson的API是线程安全的,所以可以操作单个Redisson连接来完成各种操作
  • Lettuce:基于Netty框架的事件驱动的通信层,其方法调用是异步的。Lettuce的API是线程安全的,所以可以操作单个Lettuce连接来完成各种操作

2、redis的Sharding机制与技术:

1) Sharding机制:即通常所说的“分片”,允许数据存放在不同的物理机器上,以适应数据量过大的场景,克服单台机器内存或者磁盘空间的限制。

而这种“离散式”地存放,对客户端来说是透明的,对客户端来讲,完全看不到这种差别。

2) Redis的分片(Sharding或者Partitioning)技术:是指将数据分散到多个Redis实例中的方法,分片之后,每个redis拥有一部分原数据集的子集。

在数据量非常大时,这种技术能够将数据量分散到若干主机的redis实例上,进而减轻单台redis实例的压力。分片技术能够以更易扩展的方式使用多台计算机的存储能力(这里主要指内存的存储能力)和计算能力:

a.从存储能力的角度,分片技术通过使用多台计算机的内存来承担更大量的数据,如果没有分片技术,那么redis的存储能力将受限于单台主机的内存大小。

b.从计算能力的角度,分片技术通过将计算任务分散到多核或者多台主机中,能够充分利用多核、多台主机的计算能力。

3、缓存客户端与服务器:

  • redis是开源的缓存软件,jedis是java连接redis的客户端jar包
  • zedis是sn在redis 2.8版本上进行修改定制的缓存服务器软件
  • sedis是sn在jedis版本上定制的缓存客户端软件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • MySQL MyBatis 默认插入当前时间方式

    MySQL MyBatis 默认插入当前时间方式

    这篇文章主要介绍了MySQL MyBatis 默认插入当前时间方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Java的CyclicBarrier循环屏障解析

    Java的CyclicBarrier循环屏障解析

    这篇文章主要介绍了Java的CyclicBarrier循环屏障解析,CyclicBarrier和CountDownLatch一样,是一个同步工具类,它允许一组线程相互等待直到达到某个common barrier point,在程序中CyclicBarrier是非常有用的,它适用于一组线程必须互相等待的情况,需要的朋友可以参考下
    2023-12-12
  • java利用phantomjs进行截图实例教程

    java利用phantomjs进行截图实例教程

    PlantomJs是一个基于javascript的webkit内核无头浏览器 也就是没有显示界面的浏览器,你可以在基于 webkit 浏览器做的事情,它都能做到。下面这篇文章主要给大家介绍了关于java利用phantomjs进行截图的相关资料,需要的朋友可以参考下
    2018-10-10
  • 总结Bean的三种自定义初始化和销毁方法

    总结Bean的三种自定义初始化和销毁方法

    这篇文章主要介绍了Bean的三种自定义初始化和销毁方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • myeclipse10配置tomcat教程详解

    myeclipse10配置tomcat教程详解

    这篇文章主要为大家详细介绍了myeclipse10配置tomcat的教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 判断以逗号分隔的字符串中是否包含某个数的实例

    判断以逗号分隔的字符串中是否包含某个数的实例

    下面小编就为大家带来一篇判断以逗号分隔的字符串中是否包含某个数的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • java版十大排序经典算法:完整代码(3)

    java版十大排序经典算法:完整代码(3)

    优秀的文章也不少,但是Java完整版的好像不多,我把所有的写一遍巩固下,同时也真诚的希望阅读到这篇文章的小伙伴们可以自己去从头敲一遍,不要粘贴复制!希望我的文章对你有所帮助,每天进步一点点
    2021-07-07
  • java设计模式策略模式图文示例详解

    java设计模式策略模式图文示例详解

    这篇文章主要为大家介绍了java设计模式策略模式图文示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 实例讲解Java编程中数组反射的使用方法

    实例讲解Java编程中数组反射的使用方法

    这篇文章主要介绍了Java编程中数组反射的使用方法,通过编写数组反射工具类可以重用许多基础代码,减少对类型的判断过程,需要的朋友可以参考下
    2016-04-04
  • Java将Word文档转换为PDF文件的几种常用方法总结

    Java将Word文档转换为PDF文件的几种常用方法总结

    这篇文章主要介绍了Java将Word文档转换为PDF文件的四种常用方法,分别使用ApachePOI+iText、Aspose.Words for Java、Docx4j和JODConverter,这些库各有优点,但在使用时需要注意库与Java环境的兼容性、安装所需依赖、转换速度和资源消耗,需要的朋友可以参考下
    2024-10-10

最新评论