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;
}
}
}

浙公网安备 33010602011771号