java实现redis工具类及其调用

网上很多redis工具类需要配套ssm,spring等,这是一套可以直接用的redis取参数的工具类(String类型)

一.jedis-2.1.0.jar下载,放到项目的lib下

网盘地址(4tn5)

二.redis的配置

目录结构推荐

在conf.properties里配置redis信息


redis-server=127.0.0.1
redis-port=根据自己配置
redis-passwd=gg思密达

 

三.redis的工具类RedisClient.java(自己建包)


import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;



public class RedisClient {
	private static Log log=LogFactory.getLog(RedisClient.class);

    private Jedis jedis;//非切片额客户端连接
	private JedisPool jedisPool;//非切片连接池
    private ShardedJedis shardedJedis;//切片额客户端连接
    private ShardedJedisPool shardedJedisPool;//切片连接池
    private String redisServer = getConfigAttr("conf.properties","redis-server");
    private String redisPort = getConfigAttr("conf.properties","redis-port");
    private String passwd = getConfigAttr("conf.properties","redis-passwd");
    private static final String  defaultServerIp = "127.0.0.1";//如果没有配置地址,默认为本机地址
    
    public RedisClient() 
    { 
    	initServerPort();
        initialPool(); 
        initialShardedPool(); 
        shardedJedis = shardedJedisPool.getResource(); 
        jedis = jedisPool.getResource();
        jedis.auth(passwd);
    } 
    private void initServerPort(){
    	if("".equals(redisServer) || redisServer==null){
    		redisServer = defaultServerIp;
    	}
    	if("".equals(redisPort) || redisPort==null){
    		redisPort = "6379";
    	}
    }
 
    /**
     * 初始化非切片池
     */
    private void initialPool() 
    { 
        // 池基本配置 
    	JedisPoolConfig config = new JedisPoolConfig(); 
        config.setMaxActive(20); 
        config.setMaxIdle(5); 
        config.setMaxWait(1000l); 
        config.setTestOnBorrow(false); 
        
        jedisPool = new JedisPool(config,redisServer,Integer.parseInt(redisPort),100000);
    }
    
    /** 
     * 初始化切片池 
     */ 
    private void initialShardedPool() 
    { 
        // 池基本配置 
        JedisPoolConfig config = new JedisPoolConfig(); 
        config.setMaxActive(20); 
        config.setMaxIdle(5); 
        config.setMaxWait(1000l); 
        config.setTestOnBorrow(false); 
        // slave链接 
        List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(); 
        JedisShardInfo jedisShardInfo= new JedisShardInfo(redisServer,Integer.parseInt(redisPort),100000,"master");
        jedisShardInfo.setPassword(passwd);
        shards.add(jedisShardInfo);

        // 构造池 
        shardedJedisPool = new ShardedJedisPool(config, shards); 
    } 
    
    public void cacheRecord(Map<String, String> map){
    	Set<Map.Entry<String, String>> entrySet = map.entrySet();
    	//将关系集合entrySet进行迭代,存放到迭代器中                
    	Iterator<Map.Entry<String, String>> it2 = entrySet.iterator();
    	                
    	while(it2.hasNext()){
	        Map.Entry<String, String> me = it2.next();//获取Map.Entry关系对象me
	        String key = me.getKey();//通过关系对象获取key
	        String value = me.getValue();//通过关系对象获取value
	        shardedJedis.set(key, value);                
    	}
    }
    
    public void delCacheList(List<String> list){
    	for(String s:list){
    		jedis.del(s);
    	}
    }
    
    public boolean isExist(String s){
    	return jedis.exists(s);
    }
    
    public String getValue(String s){
    	return jedis.get(s);
    }
    
    public void destroy(){
    	jedisPool.returnResource(jedis);
        shardedJedisPool.returnResource(shardedJedis);
    }
    
    private String getConfigAttr(String propfile,String attr){
		InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(propfile);    
		Properties p = new Properties();    
		try {    
			p.load(inputStream);    
		} catch (IOException e) {
			if(log.isErrorEnabled()){
				log.error(e);
			}
		} catch (Exception e) {
			if(log.isErrorEnabled()){
				log.error(e);
			}
		}finally{
			if(p.isEmpty()){
				try {
					inputStream.close();
				} catch (IOException e) {
					if(log.isErrorEnabled()){
						log.error(e);
					}
				} catch (Exception e) {
					if(log.isErrorEnabled()){
						log.error(e);
					}
				}
			}
		}    
		String attrValue = p.getProperty(attr);   

		return attrValue;
	}
    
    /**
	 * 获取jedis
	 * @return the jedis
	 */
	public Jedis getJedis() {
		return jedis;
	}
	/**
	 * 设置jedis
	 * @param jedis the jedis to set
	 */
	public void setJedis(Jedis jedis) {
		this.jedis = jedis;
	}

}

 

四.取用redis的参数

RedisClient redisClientPc = new RedisClient();
String aaa = redisClientPc.getValue("aaa") == null ? "" : redisClientPc.getValue("aaa");

 

在这里想吐槽一句:学习成本变高了,动不动要c币,太难了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JedisUtil是一个Java Redis缓存工具类,它封装了Jedis客户端的基本操作,使得使用Redis缓存更加简单方便。 以下是JedisUtil的示例代码: ``` import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class JedisUtil { private static JedisPool jedisPool; static { JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxTotal(1000); jedisPoolConfig.setMaxIdle(100); jedisPool = new JedisPool(jedisPoolConfig, "localhost", 6379); } public static void set(String key, String value) { try (Jedis jedis = jedisPool.getResource()) { jedis.set(key, value); } } public static String get(String key) { try (Jedis jedis = jedisPool.getResource()) { return jedis.get(key); } } public static void del(String key) { try (Jedis jedis = jedisPool.getResource()) { jedis.del(key); } } public static void expire(String key, int seconds) { try (Jedis jedis = jedisPool.getResource()) { jedis.expire(key, seconds); } } public static boolean exists(String key) { try (Jedis jedis = jedisPool.getResource()) { return jedis.exists(key); } } } ``` 在上面的代码中,我们使用了JedisPool来管理Jedis连接,它的作用是维护一定数量的Jedis连接,以便在需要时从池中获取连接,减少了创建和关闭连接的开销。 在使用JedisUtil时,我们只需要调用set、get、del、expire和exists等方法,就可以完成对Redis缓存的操作。 例如,要将一个键值对("name", "Tom")存入Redis中,可以使用以下代码: ``` JedisUtil.set("name", "Tom"); ``` 要获取键为"name"的值,可以使用以下代码: ``` String name = JedisUtil.get("name"); ``` 同时,JedisUtil还提供了删除、设置过期时间和判断键是否存在等方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值