rides应用

RedisUtil

package com.itheima.store.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class RedisUtil {
    private static JedisPoolConfig poolConfig = new JedisPoolConfig();
    private static JedisPool pool ;
    static{
        //解析配置文件
        try {
            Properties properties = new Properties();
            //使用类加载器 加载配置文件
            properties.load(RedisUtil.class.getClassLoader().getResourceAsStream("redis.properties"));
            int maxIdle =Integer.parseInt( properties.getProperty("maxIdle"));
            int maxTotal =Integer.parseInt( properties.getProperty("maxTotal"));
            int minIdle =Integer.parseInt( properties.getProperty("minIdle"));
            String host =properties.getProperty("host");
            int port =Integer.parseInt( properties.getProperty("port"));
            poolConfig.setMaxIdle(maxIdle);
            poolConfig.setMaxTotal(maxTotal);
            poolConfig.setMinIdle(minIdle);
            pool= new JedisPool(poolConfig,host, port);
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }
    
    public static Jedis getConnection(){
        return pool.getResource();
    }
    public static void close(){
        pool.close();
    }
}

redis.properties

maxIdle=20
maxTotal=100
minIdle=10
host=127.0.0.1
port=6379

应用案例

package com.itheima.store.service.impl;

import java.sql.SQLException;
import java.util.List;

import com.itheima.store.dao.CategoryDao;
import com.itheima.store.domain.Category;
import com.itheima.store.service.CategoryService;
import com.itheima.store.utils.BeanFactory;
import com.itheima.store.utils.RedisUtil;

import net.sf.json.JSONArray;
import redis.clients.jedis.Jedis;

public class CategoryServiceImpl implements CategoryService {
	private CategoryDao categoryDao=BeanFactory.getInstance(CategoryDao.class);
	@Override
	public String list() throws Exception {
		/*List<Category> list=categoryDao.findAll();
		String result  = JSONArray.fromObject(list).toString();
		return result;*/
		//////////////////////////////////使用redis作为缓存////////////////////////
		//先获取连接
		Jedis connection = RedisUtil.getConnection();
		//先去查询redis
		String categories = connection.get("categories");
		//如果redis没有数据
		if(categories==null){
			//查询数据库
			List<Category> list=categoryDao.findAll();
			System.out.println("查询数据库了");
			String result  = JSONArray.fromObject(list).toString();
			//查出数据 不要直接返回 而是将此数据 放入redis 再返回
			connection.set("categories", result);
			connection.close();
			return result;
		}else{
			//等再一次访问来的 那么redis是有数据 
			//从redis取出数据返回
			connection.close();
			return categories;
		}
	}
	
	
	
}

  

猜你喜欢

转载自www.cnblogs.com/jdan/p/9035728.html