Redis入门很简单之七【使用Jedis实现客户端Sharding】

labview redis通讯源码及实例 立即下载
<一>. 背景介绍:

 1. sharding机制:即通常所说的“分片”,允许数据存放在不同的物理机器上,  以适应数据量过大的场景,克服单台机器内存或者磁盘空间的限制。而这种“离散式”地存放,对客户端来说是透明的,对客户端来讲,完全看不到这种差别。
 2. 常见的内存缓存中间件,比如Memcached支持服务器端Sharding,客户端根本无须关心具体的实现细节。而Redis并不支持服务器端分片,不过我们可以使用Jedis提供的API来实现客户端的分片,通过“一致性hash”算法,使得数据离散地存放在不同的服务器上面。
 3. 对客户端来说,这是透明的,数据具体存在在那一台机器上面,对客户端来讲是无差别的。然后,通过不同机器上面的Redis控制台,我们还是可以看出数据的存储情况。
 4. 优缺点:使用Sharding机制,克服了单台服务器的“内存限制”,但是不可避免的降低了数据的存储和访问效率。

 

<二>. 进行配置:
 1. 增加节点:去掉之前的主从配置,作为用作Sharding的一台服务器,增加属性设置

Shell代码  收藏代码
  1. redis.host2=192.168.142.34  

  2. 连接池配置:使用shardedJedisPool

Xml代码  收藏代码
  1. <bean id = "shardedJedisPool" class = "redis.clients.jedis.ShardedJedisPool">  
  2.     <constructor-arg index="0" ref="jedisPoolConfig"/>  
  3.     <constructor-arg index="1">  
  4.         <list>  
  5.             <bean class="redis.clients.jedis.JedisShardInfo">  
  6.                 <constructor-arg index="0" value="${redis.host}"/>         
  7.                 <constructor-arg index="1" value="${redis.port}" type="int"/>  
  8.                 <constructor-arg index="2" value="${redis.timeout}" type="int"/>  
  9.                 <property name="password" value="${redis.password}"/>  
  10.             </bean>  
  11.             <bean class="redis.clients.jedis.JedisShardInfo">  
  12.                 <constructor-arg index="0" value="${redis.host2}"/>         
  13.                 <constructor-arg index="1" value="${redis.port}" type="int"/>  
  14.                 <constructor-arg index="2" value="${redis.timeout}" type="int"/>  
  15.                 <property name="password" value="${redis.password}"/>  
  16.             </bean>  
  17.         </list>             
  18.     </constructor-arg>  
  19. </bean>  

 <三>. 使用API编程:
  1. 获取shardedJedis:

Java代码  收藏代码
  1. ShardedJedisPool shardedPool = (ShardedJedisPool)context.getBean("shardedJedisPool");  
  2. ShardedJedis shardedJedis = shardedPool.getResource();  
  3.  ...  
  4. shardedPool.returnResource(shardedJedis);   

  2. 存储/访问/删除数据:

Java代码  收藏代码
  1. shardedJedis.set("president", "Obama");  
  2. String president = shardedJedis.get("president");  
  3. shardedJedis.del("president");  
基于 Logistic 混沌映射和 Arnold 变换 的变换域水印改进算法【高级网络与信息安全技术-信息隐藏期末课程论文】 摘要:\textbf{摘要:}摘要:本文提出了一种新的水印算法是一种图像认证的新方法。算法首先使用Logistic混沌映射加密水印图像,然后使用Arnold变换置乱水印。同时改变了水印图像的像素位置和像素值,大大提高了算法的安全性。再使用DCT变换嵌入水印,并且结合人类视觉系统的特点来提升水印嵌入的透明性。实验结果表明,本文提出的水印算法可以大幅度提高水印嵌入的透明性与安全性的同时,并不降低算法的鲁棒性。注:完整的代码和论文在文末,百度网盘链接。 阅读详情

相关推荐

2025年最新Cesium学习示例:Cesium-Examples

2025年最新Cesium学习示例:Cesium-Examples

2403_88103571的博客 1011

Redis(六)sharding、代理、cluster

redis sharding分片、代理、cluster

zql1455890112的博客 528

P4语言实战:如何用Barefoot Tofino实现自定义网络协议(避坑指南)

本文是一份详尽的P4语言实战指南,重点讲解如何利用Barefoot Tofino可编程交换芯片实现自定义网络协议。内容涵盖从P4编程模型解析、自定义协议头定义,到匹配-动作流水线构建、性能优化及生产环境部署的全过程,并特别分享了在资源管理、字节序、调试技巧等方面的宝贵避坑经验,旨在帮助网络开发者和研究人员掌握数据平面编程的核心能力。

echo99的专栏 640

Jedis一致性hash与sharding

      Redis-server本身并没有sharding方法,不过我们可以借助客户端程序来实现此功能,Jedis中已经为我们提供了足够的API,接下来通过2种方式分别介绍3个API使用方法。不过首先介绍一下Jedis中sharding原理   一.Sharding与一致性Hash     sharding的核心理念就是将数据按照一定的策略"分散"存储在集群中不同的物理serv...

深入一点 565

有限元分析必看:如何用ANSYS检查关键区域的网格质量(附操作截图)

本文聚焦有限元分析中决定仿真精度的关键环节,详细讲解了如何利用ANSYS Workbench对关键区域进行网格质量检查与优化。文章提供了从思维转变、实战操作到指标解读的完整流程,强调通过命名选择、Worksheet过滤器等工具实现定向检查,并给出了针对结构分析的关键区域网格质量阈值建议,帮助工程师提升仿真结果的可靠性与效率。

weixin_29200741的博客 470

Polyworks脚本开发学习笔记(一)-脚本开发环境

详细的总结和记录了利用Polyworks进行脚本开发的一些方法和心得

qq_43662503的博客 6821

redis分片sharding实现原理

其理论是,客户端随意与集群中的任何节点通信,服务器端负责计算某个key在哪个机器上,当客户端访问某台机器时,服务器计算对应的key应该存储在哪个机器,然后把结果返回给客户端,客户端再去对应的节点操作key,是一个重定向的过程,此方式是redis3.0正在实现,目前处于beta版本,Redis3.0的集群同时支持HA功能,某个master节点挂了后,其slave会自动接管。,此方法的好处是降低了服务器集群的复杂度,客户端实现数据分片时,服务器是独立的,服务器之前没有任何关联。有没有其它手段改善这种情况?...

daobuxinzi的博客 474

【WorkBuddy专栏27】WorkBuddy 和 CodeBuddy 到底什么关系——一篇文章终结所有混淆

WorkBuddy 和 CodeBuddy 到底什么关系——一篇文章终结所有混淆

AI人人懂 2772

6.Redis集群之数据分片

为什么集群?通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取。Redis是一个很好的Cache工具。大型网站应用,热点数据量往往巨大,几十G上百G是很正常的事儿,在这种情况下,如何正确架构Redis呢?首先,无论我们是使用自己的物理主机,还是使用云服务主机,内存资源往往是有限制的,scale up不是一个好办法,我们需要scale out横向可伸缩扩展,这需要由多...

郑学炜的技术博客 1426

UNet 改进(39):结合残差连接与CBAM注意力机制的unet模型

本文提出了一种改进的UNet架构,通过融合残差连接和CBAM注意力机制来增强医学图像分割性能。该网络保留UNet的U形结构,但将基础模块替换为ResidualBlock和CBAM的组合:残差块通过快捷连接解决梯度消失问题,CBAM模块结合通道和空间注意力机制突出重要特征。整体架构采用编码器-解码器设计,包含5个下采样和上采样阶段,通过跳跃连接融合多尺度特征。实验表明,这种改进显著提升了原始UNet的性能,特别适用于需要精细边界的医学图像分割任务。

2401_82355416的博客 1040

使用HART Server PC软件进行HART设备的组态、调试和分析的完整指南

HART协议是一种用于工业自动化中的双向通信协议,能够在4-20mA模拟信号的基础上叠加数字信号,从而实现设备的远程监控和管理。HART协议兼具模拟和数字通信的优点,被广泛应用于过程控制系统中。设备组态:通过软件可以对HART设备进行组态,配置设备参数。设备调试:支持设备的在线调试和故障诊断,方便快速解决问题。数据分析:提供设备运行数据的实时监控和历史数据分析功能。报表生成:支持生成各类报表,便于数据记录和管理。

qq_38334677的博客 2474

Redis实战之Redis + Jedis

用Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET 等。基于这些限制,有必要考虑Redis! 言归正传,目前Redis大概有3中基于Java语言的Client: JredisJedisRedis4J 这里只说Jedis,因为它是官方提供的唯一Redis Client For Java Provider!   一、简单使用Jedi

it_man的专栏 3万+

Altium Designer应用技巧13: 四层板的拼版方法

本文介绍在Altium Designer中,进行4层板的拼版方法。Altium Designer有多种拼版方法,本文选择最直观的复制、删帖方法来完成,步骤如下: 1、看一下原始文件,如下图所示,我们要对该板进行拼版操作。 2、通过菜单“报告”-“板子信息”得到板子大小,在这里一般切换为mm比较好操作,我们可以使用快捷键"q"。 3、如果是水平拼版,我们需要关心水平长度;如果是垂直拼版...

snmplink的博客 1万+

jedispool redis哨兵_基于jedis、redis-sentinel的redis主从、高可用、sharding架构

最近项目上需要对Redis(目前redis用的是2.8版本)做高可用、集群等优化,就扩展了jedis客户端(MasterSlaveJedis、MasterSlaveJedisPool、ShardedMasterSlaveJedis、ShardedMasterSlaveJedisPool),以满足以下几个需求:1、主Redis与各个从Redis之间能够实现高可用(监控、自动故障迁移等),这个委托给r...

weixin_29174141的博客 242

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

java jedis multi_Redis Java客户端之Jedis

依赖项:redis.clientsjedis2.9.0一、jedis对应redis的四种工作模式Jedis,JedisCluster,JedisSentinel和ShardedJedis对应了Redis的四种工作模式:Redis Standalone(单节点模式),Redis Cluster(集群模式),Redis Sentinel(哨兵模式)和Redis Sharding(分片模式)。二、je...

weixin_31903257的博客 685

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

1、redis的几种常见客户端:Jedis:是Redis的java实现客户端,提供了比较全面的Redis命令的支持;Redisson:实现了分布式和可扩展的Java数据结构。Lettuce:高级Redis客户端,用于线程安全同步,异步和响应使用,支持集群,Sentinel,管道和编码器。1)优点:Jedis:比较全面的提供了Redis的操作特性Redisson:促使使用者对Redis的关注分离,提...

weixin_33212263的博客 167

redis几种java客户端比较:jedis、redisson、lettuce

jedis、redisson、lettuce 概况 Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持; Jedis中的方法调用是比较底层的暴露的Redis的API,也即Jedis中的Java方法基本和Redis的API保持着一致,了解Redis的API,也就能熟练的使用Jedis。 Redisson实现了分布式和可扩展的Java数据结构,提供很多分布式相关操作服务,例如,分布式锁,分布式集合,可通过Redis支持延迟队列。和Jedis相比,功能较为简单,.

zhanghongzheng3213的专栏 3192

【Redis】使用Jedis实现客户端Sharding

. 背景介绍:  1. sharding机制:即通常所说的“分片”,允许数据存放在不同的物理机器上,  以适应数据量过大的场景,克服单台机器内存或者磁盘空间的限制。而这种“离散式”地存放,对客户端来说是透明的,对客户端来讲,完全看不到这种差别。  2. 常见的内存缓存中间件,比如Memcached支持服务器端Sharding,客户端根本无须关心具体的实现细节。而Redis并不支持服务器端分片,

442

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

1、redis的几种常见客户端:Jedis:是Redis的Java实现客户端,提供了比较全面的Redis命令的支持;Redisson:实现了分布式和可扩展的Java数据结构。Lettuce:高级Redis客户端,用于线程安全同步,异步和响应使用,支持集群,Sentinel,管道和编码器。1)优点:Jedis:比较全面的提供了Redis的操作特性Redisson:促使使用者对Redis的关注分离,提...

weixin_42546392的博客 268

jedis java 客户端,jedis:Redis的Java客户端

JedisJedis is a blazingly small and sane Redis java client.Jedis was conceived to be EASY to use.Jedis is fully compatible with redis 2.8.x, 3.x.x and above*.CommunityMeet us on IRC: ##jedis on ...

weixin_31367439的博客 190

Redis中的客户端Sharding

Jedis 客户端提供了Redis Sharding 的方案,并且支持连接池。 ShardedJedis public class ShardingTest { public static void main(String[] args) { JedisPoolConfig poolConfig = new JedisPoolConfig(); // Redis服务器 JedisShardInfo shardInfo1 = new JedisS

Leon_Jinhai_Sun的博客 228

Jedis 默认sharding实现原理分析

当信息量较大时,我们就需要将信息保存在多台机器上。如何均匀分配数据呢? redis.clients.jedis.ShardedJedisPool.java 为我们提供了一个简单一样的数据分箱的实现,下面分析一下其原理。 从构造方法入手: public ShardedJedisPool(final GenericObjectPool.Config poolConfig,

Isteper's dream 9142

Jedis的使用

一、简单使用Jedis 需要Jedis就从Maven获取吧! Maven Pom.xml   Xml代码   dependency>      groupId>redis.clientsgroupId>      artifactId>jedisartifactId>      version>2.1.0version>      type>jartype>      s

zhengweibinhaifang的专栏 988
上一篇: Redis入门很简单之六【Jedis常见操作】
下一篇: Redis入门很简单之八【Spring Data Redis初探】
codepython
博客等级 码龄20年 125粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值