pox文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > <modelVersion>4.0.0</modelVersion> <groupId>com.kovansys.test</groupId> <version>1.1.0</version> <artifactId>redis_test</artifactId> <packaging>jar</packaging> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <logback.version>1.2.3</logback.version> <slf4j.version>1.7.26</slf4j.version> <junit.version>5.4.1</junit.version> <java.encoding>UTF-8</java.encoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <jedis.version>3.0.0</jedis.version> <commons-pool2.version>2.4.3</commons-pool2.version> <lettuce.version>5.0.0.RELEASE</lettuce.version> </properties> <build> <directory>target</directory> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>${jedis.version}</version> </dependency> <dependency> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> <version>${lettuce.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>${commons-pool2.version}</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> </dependencies> </project>
用 Jedis连接java实现代码:
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import redis.clients.jedis.HostAndPort; import redis.clients.jedis.JedisCluster; import redis.clients.jedis.JedisPoolConfig; public class JRedisClusterJava { public static void main(String[] args) { try { // Connecting to Redis server on localhost Set<HostAndPort> set = new HashSet<HostAndPort>(); set.add(new HostAndPort("192.168.0.180", 7000)); set.add(new HostAndPort("192.168.0.180", 7001)); set.add(new HostAndPort("192.168.0.180", 7002)); set.add(new HostAndPort("192.168.0.180", 7003)); set.add(new HostAndPort("192.168.0.180", 7004)); set.add(new HostAndPort("192.168.0.180", 7005)); JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxIdle(300); jedisPoolConfig.setMaxTotal(5000); jedisPoolConfig.setMinIdle(6); jedisPoolConfig.setMaxWaitMillis(2000); jedisPoolConfig.setTestOnBorrow(true); JedisCluster jedis = new JedisCluster(set, 2000, 2000, 2, "test123", jedisPoolConfig); System.out.println("Connection to server sucessfully"); long startTime = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { jedis.set(String.valueOf(i), String.valueOf(i)); String value = jedis.get(String.valueOf(i)); //System.out.println(value); } System.out.println("Jedis Cost time:" + (System.currentTimeMillis() - startTime)); jedis.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
用Lettuce 实现代码:
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import org.apache.commons.pool2.impl.GenericObjectPool; import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import io.lettuce.core.RedisURI; import io.lettuce.core.cluster.RedisClusterClient; import io.lettuce.core.cluster.api.StatefulRedisClusterConnection; import io.lettuce.core.support.ConnectionPoolSupport; public class LettuceClusterJava { public static void main(String[] args) { try { // Connecting to Redis server on localhost Set<RedisURI> nodeSet = new HashSet<RedisURI>(); nodeSet.add(RedisURI.create("redis://test123@192.168.0.180:7000")); nodeSet.add(RedisURI.create("redis://test123@192.168.0.180:7001")); nodeSet.add(RedisURI.create("redis://test123@192.168.0.180:7002")); nodeSet.add(RedisURI.create("redis://test123@192.168.0.180:7003")); nodeSet.add(RedisURI.create("redis://test123@192.168.0.180:7004")); nodeSet.add(RedisURI.create("redis://test123@192.168.0.180:7005")); RedisClusterClient clusterClient = RedisClusterClient.create(nodeSet); GenericObjectPoolConfig jedisPoolConfig = new GenericObjectPoolConfig(); jedisPoolConfig.setMaxIdle(300); jedisPoolConfig.setMaxTotal(5000); jedisPoolConfig.setMinIdle(6); jedisPoolConfig.setMaxWaitMillis(2000); jedisPoolConfig.setTestOnBorrow(true); GenericObjectPool<StatefulRedisClusterConnection<String, String>> pool = ConnectionPoolSupport.createGenericObjectPool(() -> clusterClient.connect(), jedisPoolConfig); long startTime = System.currentTimeMillis(); execute work try (StatefulRedisClusterConnection<String, String> connection = pool.borrowObject()) { System.out.println("Connection to server sucessfully"); for (int i = 0; i < 100000; i++) { connection.sync().set(String.valueOf(i), String.valueOf(i)); String value = connection.sync().get(String.valueOf(i)); // System.out.println(value); } System.out.println("Cost time:" + (System.currentTimeMillis() - startTime)); } // terminating pool.close(); System.out.println("Cost time:" + (System.currentTimeMillis() - startTime)); clusterClient.shutdown(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关推荐
阿里云公网Redis集群搭建及Java访问教程 在云计算日益普及的今天,阿里云提供了便捷的公共服务,如Redis缓存服务,帮助企业或个人快速构建高效、可靠的分布式应用。本教程将详细讲解如何在阿里云上搭建公网Redis...
.java访问 redis集群?
Java面试题80:java访问redis级redis集群?.mp4
Java 连接 Redis 集群的实现 在这个资源中,我们将探讨如何使用 Java 客户端连接 Redis 集群,并实现单例模式和集群模式的连接。 Redis 集群 Redis 集群是一种高可用性的 Redis 部署方式,通过将多个 Redis 节点...
7. 高可用性配置:如果Redis集群使用了Sentinel,可以使用JedisSentinelPool,它会自动检测主从切换,并提供新的Jedis实例。 总的来说,Java连接Redis主要依赖于Jedis库和Apache Commons Pool库。通过这两个库,...
**RedisCluster集群与Spring访问Redis详解** Redis是一个高性能的键值数据库,广泛应用于缓存、消息中间件等场景。在大型分布式系统中,为了提供高可用性和数据冗余,我们通常会采用Redis Cluster来构建集群。本文...
- **Jedis (Java Cluster Client)**: Java应用程序可以通过Jedis客户端库来连接Redis集群。 - **r3c (C++ Cluster Client)**: 对于使用C++开发的应用程序,可以使用r3c作为客户端库。 #### 11. 新增节点 - **添加...
本文将深入探讨如何使用Spring Data Redis构建一个Redis集群,以及如何通过Spring框架来操作Redis集群,存储对象集合,并提供一个基于Maven的可运行项目示例。 首先,Spring Data Redis是Spring框架的一个模块,它...
当单个Redis实例无法满足需求时,可以搭建Redis集群。Spring Boot同样提供了对集群的支持,可以连接多个节点并自动处理数据分布。 10. **监控与性能调优** 使用`spring-boot-actuator`模块可以监控Redis的相关...
Redis 集群第三方库是实现 Redis 集群功能时不可或缺的一部分,它们通常包含了扩展 Redis 功能或者优化集群操作的工具和库。在 Redis 的生态系统中,许多开发者和社区贡献者开发了各种各样的库来帮助管理和操作...
`jar` 文件通常包含 Java 运行时环境或者相关的库,可能在某些情况下用于 Redis 集群的配置或管理工具,比如 Jedis,这是一个 Java 客户端,可以与 Redis 服务器进行交互。然而,描述中没有具体说明需要哪个 `jar` ...
1. **添加依赖**:同样,需要引入Jedis或Lettuce的集群支持库,它们提供了对Redis集群的访问。 2. **配置集群节点**:在`JedisCluster`或`LettuceClientConfiguration`中,配置Redis集群的所有节点地址和端口,以及...
为了访问集群,你需要一个支持Redis集群的客户端。例如,`Jedis`库(Java)或`StackExchange.Redis`(.NET)都提供了集群支持。在应用程序中配置多个服务器地址,并指定为集群模式即可连接。 以上就是在Windows 10 ...
标题中的"java-redis-proxy"指的是一个Java实现的Redis代理服务,它的主要作用是作为客户端与Redis集群之间的中间层,以管理和优化对Redis集群的访问。通过使用代理,可以实现负载均衡、故障转移、数据路由等功能,...
### Java对Redis的基本操作 #### 一、Redis服务器端安装及配置 1. **下载**: - 访问[MSOpenTech/redis](https://github.com/MSOpenTech/redis)页面,下载适用于Windows平台的`redis2.6`版本。 - 解压缩后,根据...
以下是对Redis集群的一些核心特性的详细介绍: 1. **节点自动发现**:集群内的节点能够自动识别其他节点的存在,从而简化了集群管理和维护的工作量。 2. **Slave到Master选举**:在某些节点出现故障的情况下,集群...
本资源包“nginx+lua+redis集群 连接插件和脚本”正是为了解决这三者之间的协同工作,特别是针对原插件没有密码功能的问题进行了改进,使得安全性得到了提升。 首先,Nginx是一款轻量级的Web服务器/反向代理服务器...
为了确保服务的稳定性和可靠性,Redis提供了多种高可用解决方案,其中最常见的是Redis Cluster集群模式以及自定义的手工搭建的缓存框架。下面将对这两个方面进行详细探讨。 ### Redis Cluster集群 Redis Cluster是...
6. **Java操作Redis集群**:在Java应用中操作Redis集群,需要引入相应的Redis客户端库,如Jedis或Lettuce,它们支持与Redis集群的交互,包括读写操作、事务处理、发布订阅等功能。 **注意事项**: - 集群中的节点应...
- 在本地机器上,可以编写Java程序,利用Jedis客户端连接到阿里云服务器上的Redis集群,进一步验证集群功能。 #### 三、常见问题与解决方案 在搭建Redis集群的过程中,可能会遇到各种各样的问题。以下是一些常见的...