一、准备
关于redis的一些安装,可以查看我的几篇文章自行安装:Redis目录。
导入java的Redis客户端依赖包Jedis:
redis.clients
jedis
2.9.0
二、单机Redis
简单单机用代码测试:Jedis jedis = new Jedis("localhost");
jedis.set("foo", "bar");
String value = jedis.get("foo");
三、代码中连接redis集群
//使用jedis在代码中连接redis集群,因为是集群,可以自动发现,也同样只要一个地址就行了
Set jedisClusterNodes = new HashSet();
//Jedis Cluster will attempt to discover cluster nodes automatically
jedisClusterNodes.add(new HostAndPort("192.168.240.142", 6379));
JedisCluster jc = new JedisCluster(jedisClusterNodes);
jc.set("foo", "bar");
String value = jc.get("foo");
System.out.println(value);
运行后发现可以正常取到:
用redis客户端到redis集群中查看验证,存入时我们连接的是142,此时我们在144上进行验证:
四、spring-data-redis连接redis集群
因为实际中我们不可能每次使用的时候都去new一下,然后连接,所以这边推荐使用spring集成redis,并且使用较新的包(版本较低的可能不支持redis集群)。
导入jedis包后,还要导入spring-data-redis:
org.springframework.data
spring-data-redis
1.7.2.RELEASE
创建一个redisCluster.properties:#redis setting
redis.host1=192.168.240.142
redis.port1=6379
#jedis setting
jedis.maxIdle=6
jedis.minEvictableIdleTimeMillis=300000
jedis.numTestsPerEvictionRun=3
jedis.timeBetweenEvictionRunsMillis=60000
创建一个spring-redisCluster.xml:<?xml version="1.0" encoding="UTF-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"
default-lazy-init="true">
新建一个 RedisClusterUtils.class用来存放一些统一的redis集群操作:package com.spring.demo.redis;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import redis.clients.jedis.JedisCluster;
import java.util.List;
@Component
public class RedisClusterUtils {
@Autowired
private JedisCluster jedisCluster;
/**
* 得到指定key值的value
* @param key
*/
public Object get(String key){
return jedisCluster.get(key);
}
/**
* 保存指定key值的value
* @param key
* @param value
*/
public void set(String key, String value){
jedisCluster.set(key, value);
}
/**
* 保存指定key值的value
* @param key
* @param list
*/
public void set(String key, List list){
jedisCluster.rpush(key, (String[]) list.toArray());
}
/**
* 删除指定key的value
* @param key
*/
public void del(String key){
jedisCluster.del(key);
}
}
代码运行验证://spring集成redis集群
ApplicationContext ctx = new ClassPathXmlApplicationContext("/spring-redisCluster.xml");
RedisClusterUtils redisClusterUtils = (RedisClusterUtils) ctx.getBean("redisClusterUtils");
redisClusterUtils.set("redisCluster", "RedisClusterUtils");
System.out.println(redisClusterUtils.get("redisCluster"));
客户端命令行连接集群验证,这次我们选择143进行验证
五、资料地址: