Jedis访问redis(单机、主从集群、哨兵集群)

阅读数:78 评论数:0

跳转到新版页面

分类

python/Java

正文

不同版本和回收资源方式

1、jedis版本<3.0.0

JedisPool jedisPool = null;
Jedis jedis = null;
jedis = redisPool.getResource();
   //  此处业务处理
if (jedis != null) 
{
    redisPool.returnBrokenResource(redis);
    jedis = null;   
}

2、jedis版本>-3.0.0

Jedis jedis = null;
  if (jedis != null) {
        jedis.close();  
        jedis = null;
 }

连接单机

//单机版测试
@Test
public void testJedisSingle() throws Exception {
    //创建一个Jedis对象
    Jedis jedis = new Jedis("192.168.25.153", 6379);
    jedis.set("test", "hello jedis");
    String string = jedis.get("test");
    System.out.println(string);
    jedis.close();
}

//使用连接池
@Test
public void testJedisPool() throws Exception {
    //创建一个连接池对象
    //系统中应该是单例的。
    JedisPool jedisPool = new JedisPool("192.168.25.153", 6379);
    //从连接池中获得一个连接
    Jedis jedis = jedisPool.getResource();
    String result = jedis.get("test");
    System.out.println(result);
    //jedis必须关闭
    jedis.close();
    //系统关闭时关闭连接池
    jedisPool.close();
}

连接集群

@Test
public void testJedisCluster() throws Exception {
	//创建一连接,JedisCluster对象,在系统中是单例存在
	Set<HostAndPort> nodes = new HashSet<>();
	nodes.add(new HostAndPort("127.0.0.1", 7001));
	nodes.add(new HostAndPort("127.0.0.1", 7002));
	nodes.add(new HostAndPort("127.0.0.1", 7003));
	nodes.add(new HostAndPort("127.0.0.1", 7004));
	nodes.add(new HostAndPort("127.0.0.1", 7005));
	nodes.add(new HostAndPort("127.0.0.1", 7006));
	JedisCluster cluster = new JedisCluster(nodes);
	//执行JedisCluster对象中的方法,方法和redis一一对应。
	cluster.set("cluster-test", "my jedis cluster test");
	String result = cluster.get("cluster-test");
	System.out.println(result);
	//程序结束时需要关闭JedisCluster对象
	cluster.close();
}

 




相关推荐

当然可以自己写redis的工具类,或者使用第三方开源jar包或代码,这里使用spring boot的集成类。 一、pom依赖 <dependency> <gro

mvn依赖 &lt;dependency&gt; &lt;groupId

String set(String key, String value) String set(String key,

1、依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta

使用方式1. 使用lambda表达式 public byte[] get(byte[] key) { // 使用了lambda表达式 return redisTemplate.exec

一、简介 分布式锁,其原理就是多台机器去争抢一个资源,谁争抢成功,那么就持有这把锁。 可以通过多种途径实现分布式锁,例如数据库,插入一条记录(唯一索引),谁插入成功,谁就持有;还可以通过zookeep

一、解决方法 这个警告大致的意思是拆箱时有可能空指异常。 改成下面这种方式 if (Boolean.TRUE.equals(redisTemplate.hasKey(XXXX)) { } 二、jav

1、StringRedisTemplate继承RedisTemplate 2、StringRedisTemplate默认采用的是String的序列化策略,保存的key和value都

一、简介 Spring Cache 提供了 @Cacheable 、@CachePut 、@CacheEvict 、@Caching 等注解,在方法上使用。 核心