Java语言实现Redis集群方案:Jedis集群配置与优化技巧

创始人
2024-12-30 22:41:34
0 次浏览
0 评论

Redis集群方案应该怎么做

以Java语言为例。
葡萄品种的类型通常用来解决大问题:

使用redis-trib.rb。
这是安装主服务器时附带的集群。
这个集群不仅解决了高并发的问题,还解决了高可用的问题。
Jedis使用JedisCluster来访问类。

使用Jedis自带的客户端ShardedJedisPool类。

使用twemproxyshell管理器。
连接管理器可以使用Jedis类(单连接)和JedisPool类(多连接)。

集群配置也可以通过Redis警察机制来配置,一主多从。

如有疑问,可以留言。

面试问题redis有哪些集群方案

多个同构tempproxy(配置相同)同时工作,接受客户端请求,并根据哈希算法转发给相应的返回。

该解决方案的使用已被内部放弃,新架构未开源元数据命令的分发Code-MandoCode-Mando:接口集成的管理工具Code-proxy:无状态代理,兼容Redis透明业务协议Code-Redis:从2.8版本开始,2本程序增加了支持slot和迁移命令

优点:-开发简单,应用几乎透明-性能比Twemproxy更好-图形界面,易于扩展,操作方便维护

缺点:-管理器仍然影响性能-组件太多,需要大量机器资源-返回码已更改,因此无法与正式版本同步。
开发缓慢——开发团队准备推广基于redis改造的reborndb

RedisCluster:

P2P模式,非中心化密钥分为16384个。
每个实例的槽位负责客户端槽位请求部分。
如果没有连接到实,则将实例转发到对应的实例。
通过Gossip协议同步节点信息

优点:-所有组件集中在一个盒子里,部署简单,节省机器资源-比管理器模式更好的性能-数据可自动故障转移和插槽迁移-官方原生集群解决方案。
更新和支持受到保护

缺点:-架构相对较新,最佳实践很少-对多键操作的支持有限(驱动程序可以救国)-为了获得更好的性能,客户端需要安装。
提升表信息-节点发现和重新分片操作不够自动化

redis集群时jedis该怎么配置

搭建Redis集群时;Jedis的配置方式有很多种,通常常见的有以下三种方式。
第一的,使用服务器端分片,请使用Redis安装附带的redis-trib.rb脚本。
可以通过Jedis的JedisCluster类来访问集群中的数据。
第二,您可以使用ShardedJedisPool类Jedis附带的客户端分片功能。
此方法通过客户端进行隔离,并允许更好地管理连接。
此外,您还可以使用代理进行分片,例如twemproxy。
在这种情况下,连接代理可以使用Jedis类(单连接)或JedisPool类(多连接)。
下面是使用JedisCluster类的示例:javaJedisClustercluster;;if(bundle==null){thrownewIllegalArgumentException("[redis.properties]isnotfound!");}//创建jedis池配置实例JedisPoolConfigconfig=newJedisPoolConfig();//Pol配置项值config.setMaxTotal(Integer.valueOf(bundle.getString("redis.pool.maxActive").trim()));config.setMaxIdle(Integer.valueeOf(bundle.getString("redis.pool.maxIdle").trim()));config.setMaxWaitMillis(Long.valueOf(bundle.getString("redis.pool.maxWait").trim()));config.setTestOnBorrow(Boolean.valueOf(bundle.getString("redis.pool.testOnBorrow").trim()));config.setTestOnReturn(Boolean.valueOf(bundle.getString("redis.pool.testOnReturn").trim()));Sethps=newHashSet>();hps.add(newHostAndPort("192.168.242.133",4001));hps.add(newHostAndPort("192.168.242.133",4002));hps.add(newHostAndPort("192.168.242.133",4003));hps.add(newHostAndPort("192.168.242.133)));cluster=newJedisCluster(hps,2000,5);}publicvoidtest(){//其他执行redis操作cluster.set("key","value");}其他更多信息配置方法请留言。
热门文章
1
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

2
MySQL分区删除技巧与8.0版本新特性... mysql删除分区在MySQL中,删除分区操作主要使用“可替代”的命令与“ dr...

3
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

4
深度解析:MySQL查询语句执行顺序及优... mysql查询语句执行顺序当这是由于执行SQL的过程时,了解其过程很重要。 ...

5
SQL教程:使用SUBSTRING和IN... sql取特定字符的前面几位字符selectsubstr('L-0FCLDRBCT...

6
MySQL日期差异计算方法:轻松获取日期... MySQL计算时间差两日期相减得月份mysql两时间相减得月MySQL计算时间之...

7
MySQL及SQL查询获取前10条数据方... MySql查询前10条数据sql语句是从MySQL获取前1 0个数据的SQL查询...

8
MySQL启动问题排查与解决指南 Mysql为什么启动不了如果要配置MySQL,则遇到无法启动的问题,可能是由于配...

9
DbVisualizer添加MySQL数... 如何在DbVisualizer中添加本地mysql数据库由于DbVisualiz...

10
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...