Java操作redis

jedis是Redis的Java客户端,用它可以很方便地操作redis。

需要引入的jar包有jedis和common-pool2,用Maven来引入:

<!-- jedis -->
        <dependency>
		    <groupId>redis.clients</groupId>
		    <artifactId>jedis</artifactId>
		    <version>2.8.0</version>
		</dependency>		
        <dependency>
		    <groupId>org.apache.commons</groupId>
		    <artifactId>commons-pool2</artifactId>
		    <version>2.4.2</version>
		</dependency>

一个简单的redis client如下,只操作list。

public class RedisClient {
	private static final Logger logger = Logger.getLogger(RedisClient.class);
	
    private JedisPool jedisPool = null;
    
    private String hostname_;
    private int port_;
    
 
    /**
     * 初始化连接池
     * @param hostname
     * @param port
     */
    public boolean initialPool(String hostname, int port)
    {
    	this.hostname_ = hostname;
    	this.port_ = port;
    	try{
    		// 池基本配置 
            JedisPoolConfig config = new JedisPoolConfig();
            config.setMaxIdle(5);
            config.setTestOnBorrow(false);
            jedisPool = new JedisPool(config,hostname,port);
            logger.info(MessageFormat.format("redis server connect sucessfully,hostname:{0},port:{1}", hostname , port));
    	}catch(JedisConnectionException e){
    		logger.warn(MessageFormat.format("redis server connect fail,hostname:{0},port:{1}", hostname , port));
        	logger.error(e.getMessage(),e);
        	return false;
    	}
        return true;
    }
    
    /**
     * ping redis节点
     * @return
     */
    public boolean ping(){
    	if(jedisPool!=null && !jedisPool.isClosed()){
    		return true;
    	}
    	logger.warn(MessageFormat.format("redis server ping fail,hostname:{0},port:{1}", hostname_ , port_));
    	return initialPool(hostname_, port_);
    }
    
    
    /**
     * push到队列
     * @param key
     * @param value
     */   
    public void PushList(String key,String value){
    	Jedis jedis = null;
        try {
          jedis = jedisPool.getResource();
          jedis.rpush(key, value);
          logger.debug("Push:"+key+","+value);
        } catch (Exception e) {
        	logger.error("failed to push to list");
        	logger.error(e.getMessage(),e);
        } finally {
        	jedisPool.returnResource(jedis);
        }
    }
    
    /**
     * * pop队列
     * @param key
     */
    public String PopList(String key){   	      	
    	Jedis jedis = null;
    	String value = null;
        try {
          jedis = jedisPool.getResource();
          value = jedis.lpop(key);
          if(value != null){
        	  logger.debug("Pop:"+key+","+value);
          }
        } catch (Exception e) {
        	logger.error("failed to pop from list");
        	logger.error(e.getMessage(),e);
        } finally {
        	jedisPool.returnResource(jedis);
        }
        return value;
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值