Jedis 使用范例

public class RedisUtil {

Logger logger = LoggerFactory.getLogger(RedisUtil.class);
private JedisPool pool = null;

/**

*在构造函数中初始化JedisPool

**/
public RedisUtil() {
  JedisPoolConfig config = new JedisPoolConfig();

  // 控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;    

  //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。

  config.setMaxActive(SystemConstants.REDIS_MAX_ACTIVE);  

  //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。

  config.setMaxIdle(SystemConstants.REDIS_MAX_IDLE); 

//表示当borrow一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出     
  config.setMaxWait(SystemConstants.REDIS_MAX_WAIT);   

  //表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;  
  config.setTestOnBorrow(true);
  config.setTestOnReturn(true);
  pool = new JedisPool(config, SystemConstants.REDIS_IP,SystemConstants.REDIS_PORT,SystemConstants.TIMEOUT);  //
}
public JedisPool getPool() {
  return pool;
}
public void setPool(JedisPool pool) {
  this.pool = pool;
}

public Jedis getJedis() {
  Jedis jedis = null;
  int count =0;
  do{
    try{
      jedis = this.getPool().getResource();
    } catch (Exception e) {
      getPool().returnBrokenResource(jedis);
      logger.error("Redis Exception :"+e.toString());
      e.printStackTrace();
    }
    count++;
  }while(jedis==null&&count<SystemConstants.REDIS_RETRY_NUM);
  return jedis;
}

/**

*关闭一个Jedis 资源 return 给pool

*/
public void closeJedis(Jedis jedis) {
  if(jedis != null) {
    this.pool.returnResource(jedis);
  }
}

}

// 以下为使用方法

// 获取Jedis 对象

Jedis jedis = redisUtil.getJedis();

rsp.setTariff_version(jedis.get("tariff_version"));

jedis.rpush(key.getBytes(),data);

// 关闭jedis 对象
redisUtil.closeJedis(jedis);

时间: 2024-10-12 16:50:28

Jedis 使用范例的相关文章

Redis集群的高可用测试(含Jedis客户端的使用)

Redis集群的使用测试(Jedis客户端的使用) 1.  Jedis客户端建议升级到最新版(当前为2.7.3),这样对3.0.x集群有比较好的支持. https://github.com/xetorthio/jedis http://mvnrepository.com/artifact/redis.clients/jedis 2.  直接在Java代码中链接Redis集群: // 数据库链接池配置 JedisPoolConfig config = new JedisPoolConfig();

使用Spring + Jedis集成Redis

一.集成环境 Tomcat7 JDK1.7 Jedis-2.7.2 Spring-4.1.6 二.资源依赖 (省略,网上很多) 三.集成过程 1.配置资源池 这里使用Jedis的ShardedJedisPool来管理,我们定义该配置文件为:spring-redis.xml,全部内容如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframew

Shell脚本编程知识点总结及范例

 一:关于语言 1)编译性语言 编译型语言多半运作于底层,所处理的是字节.整数.浮点数或其它及其机器层经的对象.处理过程为:源程序--预处理--编译--汇编--链接,编译性语言为静态语言. 2)解释性语言 解释性语言读入程序代码并将其转化为内部的形式加以执行.处理过程:解释性(文本文件)-解释器去读取并执行.解释性语言为动态语言. 二:基础 变量类型 linux脚本中的变量不需要事先声明,而是直接定义使用(这点不同于其他高级编程语言中变量的使用)bash变量类型分为本地变量和环境变量. 本地变量

利用Eclipse+maven编译Jedis源码成jar包和源码jar包

在GitHub上面,有很多源码都是maven项目,但是很多都没有jar包.去网上找到话第一个是比较难找,第二个是怕不够原汁原味.我们通过maven+Eclipse可以可视化将maven项目生成jar库包还有源码jar包. 1.下载maven 下载地址:http://maven.apache.org/download.html 2,解压 到本地: 3,配置环境变量 3-1,要先配置java-home变量. 新建系统变量,写入java-home值. 在系统变量的path里面添加  %JAVA_HOM

spring-data-redis,jedis和redis主从集成和遇到的问题

Redis主从加哨兵的部署详见http://www.cnblogs.com/dupang/p/6414365.html spring-data-redis和jedis集成代码总体结构 代码地址https://github.com/dupang/redistestwithspring pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XM

封装redis(jedis)

1.添加pom文件<!-- Jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.2.1</version> </dependency> 2.添加redis.properties文件book.redis.pool.maxWait=1000book.redis.

redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool

今天在链接redis时,遇到问题: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool Could not get a resource from the pool. redis的配置是: <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig&qu

Intro to Jedis – the Java Redis Client Library

转自:http://www.baeldung.com/jedis-java-redis-client-library 1. Overview This article is an introduction to Jedis, a client library in Java for Redis – the popular in-memory data structure store that can persist on disk as well. It is driven by a keyst

redis的sentinel主从切换(failover)与Jedis线程池自动重连

本文介绍如何通过sentinel监控redis主从集群,并通过jedis自动切换ip和端口. 1.配置redis主从实例 10.93.21.21:6379 10.93.21.21:6389 10.93.21.21:6399 主从同步关系 master:10.93.21.21:6379 slave:10.93.21.21:6389,10.93.21.21:6399 master配置如下: # 实例ip和端口 bind 10.93.21.21 port 6379 # pid文件 pidfile re