Java操作redis集群
借助redis的java客户端jedis可以操作以上集群,引用jedis版本的maven坐标如下:
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
Java编写访问redis集群的代码,如下所示:
public class JedisClusterTest { public static void main(String[] args) throws IOException { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(20); config.setMaxIdle(10); config.setMinIdle(5); Set<HostAndPort> jedisClusterNode = new HashSet<HostAndPort>(); jedisClusterNode.add(new HostAndPort("192.168.0.61", 8001)); jedisClusterNode.add(new HostAndPort("192.168.0.62", 8002)); jedisClusterNode.add(new HostAndPort("192.168.0.63", 8003)); jedisClusterNode.add(new HostAndPort("192.168.0.61", 8004)); jedisClusterNode.add(new HostAndPort("192.168.0.62", 8005)); jedisClusterNode.add(new HostAndPort("192.168.0.63", 8006)); JedisCluster jedisCluster = null; try { //connectionTimeout:指的是连接一个url的连接等待时间 //soTimeout:指的是连接上一个url,获取response的返回等待时间 jedisCluster = new JedisCluster(jedisClusterNode, 6000, 5000, 10, "zhuge", config); System.out.println(jedisCluster.set("cluster", "edsion")); System.out.println(jedisCluster.get("cluster")); } catch (Exception e) { e.printStackTrace(); } finally { if (jedisCluster != null) jedisCluster.close(); } } } 运行效果如下: OK edsion
集群的Spring Boot整合Redis连接代码示例
1、引入相关依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency>
springboot项目核心配置:
server: port: 8080 spring: redis: database: 0 timeout: 3000 password: zhuge cluster: nodes: 192.168.0.61:8001,192.168.0.62:8002,192.168.0.63:8003,192.168.0.61:8004,192.168.0.62:8005,192.168.0.63:8006 lettuce: pool: max-idle: 50 min-idle: 10 max-active: 100 max-wait: 1000
代码:
@RestController public class IndexController { private static final Logger logger = LoggerFactory.getLogger(IndexController.class); @Autowired private StringRedisTemplate stringRedisTemplate; @RequestMapping("/test_cluster") public void testCluster() throws InterruptedException { stringRedisTemplate.opsForValue().set("edsion", "666"); System.out.println(stringRedisTemplate.opsForValue().get("edsion")); } }