Java使用jedis对redis数据进行访问操作
本项目是一个maven项目,所以直接在pom.xml中配置了如下信息
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
1. 单机版redis测试
public void jedisSingleTest(){
//创建一个jedis的对象
Jedis jedis = new Jedis("192.168.80.130",6379);
//调用jedis对象的方法,方法名称和redis的命令一致。
jedis.set("key", "jedis-single-test");
System.out.println(jedis.get("key"));
//关闭jedis
jedis.close();
}
2. 单机版连接池测试
public void jedisSinlgePoolTest(){
//创建jedis连接池
JedisPool pool = new JedisPool("192.168.80.130",6379);
//从连接池中获得jedis对象
Jedis jedis = pool.getResource();
System.out.println(jedis.get("key"));
//关闭jedis对象
jedis.close();
pool.close();
}
3. 集群测试
public void redisClusterTest(){
HashSet<HostAndPort> hostAndPorts = new HashSet<>();
hostAndPorts.add(new HostAndPort("192.168.80.130", 7001));
hostAndPorts.add(new HostAndPort("192.168.80.130", 7002));
hostAndPorts.add(new HostAndPort("192.168.80.130", 7003));
hostAndPorts.add(new HostAndPort("192.168.80.130", 7004));
hostAndPorts.add(new HostAndPort("192.168.80.130", 7005));
hostAndPorts.add(new HostAndPort("192.168.80.130", 7006));
JedisCluster cluster = new JedisCluster(hostAndPorts);
cluster.set("key", "123");
System.out.println(cluster.get("key"));
try {
cluster.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
在做集群测试的时候由于版本的问题,导致一个错误,下面我将错误贴出来。
之前的redis的版本是
修改后的版本是
修改版本后,此问题解决。
去集群中查询
[root@localhost redis-cluster]# redis01/redis-cli -h 192.168.80.130 -p 7001 -c
192.168.80.130:7001> get key
-> Redirected to slot [12539] located at 192.168.80.130:7006
"123"
192.168.80.130:7006>