`
zk_chs
  • 浏览: 214808 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

jedis客户端连接redis cluster代码

阅读更多

上一篇redis中,讲解了redis cluster集群,但是却没有涉及到客户端代码,这次就一起来看下如何通过jedis使用redis cluster。

 

在此之前,需要说一个坑,上一篇中,我们将cluster中每个节点的ip:port配置成了如127.0.0.1:7000这样的形式。

但是,由于集群内部存取时,需要确定key所在的slot,一旦不是在我们登录的节点上,就会有内部转发,如下:

127.0.0.1:7000> set a 10
-> Redirected to slot [15495] located at 127.0.0.1:7003
OK
127.0.0.1:7003> get c
-> Redirected to slot [7365] located at 127.0.0.1:7001
"10"
127.0.0.1:7001>

可见,set之后我们的登录的redis地址成了127.0.0.1:7003,当我们进行远程操作时,便会发生"Connection refused"错误。所以,我们需要将节点配置成192.168.xx.xx:port这样的形式才行。

 

spring对于redis cluster的支持目前在spring-data-redis-1.7.0RC1中,不知道离发布还有多久,需要的朋友可以从spring-data-redis文档先用着。

为了代码方便,就不采用xml和properties文件了,首先添加jedis的jar:

// pom.xml
<dependency>
	<groupId>redis.clients</groupId>
	<artifactId>jedis</artifactId>
	<version>2.8.1</version>
</dependency>

 

 

由于我们都用spring开发,那么便需要配置bean:

@Configuration
public class RedisConfig {

    @Bean
    public JedisCluster jedisCluster (){
        Set<HostAndPort> set = new HashSet<>();
        set.add(new HostAndPort("192.168.0.21", 7001));
        set.add(new HostAndPort("192.168.0.21", 7002));
        set.add(new HostAndPort("192.168.0.21", 7003));
        set.add(new HostAndPort("192.168.0.21", 7004));
        JedisCluster jedisCluster = new JedisCluster(set);
        return jedisCluster;
    }

}

我们并不需要配置这么多节点,1个就可以,这里是为了防止个别节点挂掉。

对于JedisCluster的bean,大家可以通过properties和xml文件配置,为了方便阅读,这里就不用了(⁄ ⁄•⁄ω⁄•⁄ ⁄)

 

以上,一个简单的jedis连接redis cluster客户端就完成了。

 

下面可以测试一下:

@Configuration
@ComponentScan(basePackages = "config") // RedisConfig所在package
public class RedisClusterTest {

	@Test
	public void testCluster (){
		ApplicationContext ctx = new AnnotationConfigApplicationContext(RedisClusterTest.class);
		JedisCluster jedisCluster = ctx.getBean(JedisCluster.class);
		jedisCluster.set("redisCluster4Test", "2016-3-22");
		String value = jedisCluster.get("redisCluster4Test");
		System.out.println(value);
	}
	
}

运行后输出 2016-3-22,至此就完成了客户端的基本要求。

 

关于jedis的更多操作,网上有很多,只要对redis的操作足够熟悉,通过方法名大家就能知道对应的操作。

 

另外,对于redis-trib.rb,它建立cluster时并没有为我们提供password的功能,所以,你的集群节点不能有password,因此使用的时候还需要考虑。

 

2
3
分享到:
评论

相关推荐

    redis cluster spring整合代码

    2. **RedisConnectionFactory**:Spring会使用这些配置创建`RedisConnectionFactory`,它是连接到Redis服务器的工厂类,可以配置为使用Jedis或Lettuce客户端。 3. **RedisTemplate**或`StringRedisTemplate`:基于`...

    Redis集群的高可用测试(含Jedis客户端的使用).docx

    Redis 集群的高可用测试(含 Jedis 客户端的使用) Redis 集群是指将多个 Redis 节点组合成一个集群,以提高 Redis 的高可用性和性能。本文将介绍如何使用 Jedis 客户端来测试 Redis 集群的高可用性。 一、Jedis ...

    redisCluster集群demo

    在`redisCluster-demo`这个项目中,你可以期待找到一个使用Java实现的示例,展示如何配置和使用`JedisCluster`或者`Lettuce`来连接Redis Cluster,以及如何进行基本的数据操作。这个示例可以帮助初学者理解如何在...

    redis集群环境搭建以及java中jedis客户端集群代码实现

    在本文中,我们将深入探讨如何搭建Redis集群,以及如何在Java中使用Jedis客户端进行集群操作。 首先,让我们了解Redis集群的基本概念。Redis集群通过数据分片(Sharding)来分散数据,每个节点存储一部分数据。集群...

    25_你能聊聊redis cluster集群模式的原理吗?.zip

    客户端连接Redis Cluster时,首先需要发现集群的节点信息,然后根据键的槽位选择合适的节点进行操作。如果操作的键不在当前节点,客户端会收到一个MOVED错误,提示正确的节点位置,客户端需要重试操作。 五、Java...

    jfinal redis cluster plugin-JFinal redis cluster集群插件 带连接池和Jedis包

    3. `jfinal-rediscluster-plugin-by-shixiaotian-0.0.1.jar`:这应该是JFinal Redis Cluster插件的jar包,由开发者shixiaotian创建,版本为0.0.1,用于在JFinal项目中支持Redis集群。 4. `readme.txt`:通常这个文件...

    rediscluster配置文件.zip

    9. **客户端连接**:连接到Redis Cluster时,客户端需要支持Cluster模式,例如Jedis或RediStack等。 10. **监控与维护**:定期检查节点状态,使用`CLUSTER NODES`命令查看节点信息,确保没有孤立节点或无法达到的...

    RedisCluster.rar

    这个“RedisCluster.rar”压缩包很可能包含了一个Java项目的示例代码,用于演示如何使用Java客户端操作RedisCluster。 首先,RedisCluster的核心概念包括: 1. **节点(Nodes)**:RedisCluster由多个Redis实例...

    redis客户端连接、spring boot整合、分布式锁.zip

    项目中的 `redis-jedis` 可能是包含 Jedis 客户端使用示例的目录,`redis-lock` 可能是关于分布式锁实现的代码,而 `redis-boot-sentinel-cluster` 可能是配置和使用 Redis Sentinel 进行高可用集群的示例。...

    使用java时间连接池连接redis,单例模式和集群模式.docx

    * Jedis:Jedis 是 Java Redis 客户端的主要类,负责连接 Redis 服务器和执行 Redis 命令。 * JedisPool:JedisPool 是一个连接池类,负责管理与 Redis 服务器的连接。 * JedisCommands:JedisCommands 是一个命令...

    Redis高可用集群Java(jedis客户端)操作源码.zip

    本资料包含的是使用Java的jedis客户端操作Redis高可用集群的源码示例。通过这份资料,我们可以深入理解如何在Java应用中实现对Redis集群的高效且可靠的访问。 首先,让我们了解一下Redis集群的基本概念。Redis集群...

    完整搭建redis-cluster

    为了使应用程序能够连接到 Redis Cluster,需要配置客户端支持集群模式。大多数现代 Redis 客户端库(如 Jedis、StackExchange.Redis 等)都提供了集群支持。确保阅读对应客户端的文档以了解如何配置。 ### 6. 测试...

    rediscluster.rar

    3. **客户端连接**:客户端需支持Redis Cluster协议,如Jedis、StackExchange.Redis等,它们会自动处理槽映射和错误恢复。 **三、Redis Cluster优势** 1. **高可用性**:通过主从复制和槽动态迁移,Redis Cluster...

    jedis-2.9.0.jar和commons-pool2-2.6.0.jar下载(jedis连接redis数据库)

    标题"jedis-2.9.0.jar和commons-pool2-2.6.0.jar下载(jedis连接redis数据库)"指的是两个Java库的下载信息,用于连接Redis数据库。其中,`jedis-2.9.0.jar`是Jedis的特定版本,它是Java开发人员用来操作Redis的...

    jedisRedis的Java客户端

    - 连接Redis:Jedis实例化时需要指定Redis服务器的IP地址和端口号,可以通过`Jedis jedis = new Jedis("localhost", 6379);`建立连接。 - 基本操作:包括设置键值对(`set(key, value)`)、获取键值(`get(key)`)...

    redis集群批量插入

    Java客户端库如JedisCluster或Lettuce提供了连接和操作Redis集群的API。 批量插入String类型数据时,通常使用`JedisCluster`类中的`mset`方法。这个方法允许一次性设置多个键值对,但需要注意的是,由于Redis集群的...

    Windows环境Redis-Cluster配置

    3. 配置客户端:客户端需要支持Redis-Cluster,例如Jedis、StackExchange.Redis等。配置客户端连接时,需指定集群模式,并提供所有节点的地址。 四、运行和监控 1. 检查集群状态:使用`redis-cli -c -h node1:port ...

    java客户端测试redis集群

    2. **Java客户端**:Java中常见的Redis客户端有Jedis、Lettuce和Redisson等。它们都提供了与Redis服务器通信的API,包括连接管理、命令执行、事务处理等功能。例如,Jedis是较早的Redis客户端,功能完备,而Lettuce...

    redis cluster介绍.rar

    许多流行的Redis客户端库如Jedis、redis-py等都提供了对Redis Cluster的支持。 七、最佳实践 1. 考虑使用哨兵(Sentinel)系统配合Redis Cluster,提供更高级别的故障检测和恢复策略。 2. 避免使用需要跨节点操作...

Global site tag (gtag.js) - Google Analytics