Redis的使用
添加jar包
Redis工具類
import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class JedisUtils { //建立連接配接池 private static JedisPoolConfig config; private static JedisPool pool; static{ config=new JedisPoolConfig(); config.setMaxTotal(30); config.setMaxIdle(2); pool=new JedisPool(config, "192.168.146.135", 6379); } //擷取連接配接的方法 public static Jedis getJedis(){ return pool.getResource(); } //釋放連接配接 public static void closeJedis(Jedis j){ j.close(); } }
啟動win版本的Redis
使用Redis
如果緩存中已經有,将直接從緩存獲得,如果沒有将從資料庫擷取。修改 CategoryService 代碼,
給目前查詢所有添加業務緩存
/** * 查詢分類通過緩存伺服器 */ public String findAllByAjax() throws Exception { Jedis j =null; String value=null; try { //從 redis 擷取分類資訊 //1.擷取連接配接 j = JedisUtils.getJedis(); //2.擷取資料 判斷資料是否為空 value = j.get("category_list"); //2.1 若不為空,直接傳回資料 if(value!=null){ System.out.println("緩存中有資料庫"); return value; } //2.2 若為空,從 mysql 資料庫中擷取 并放入 redis 中 List<Category> clist = findAll(); //将 clist 轉成 json 傳回且放入 redis 中即可 value=JsonUtil.list2json(clist); //将 value 放入 redis 中 j.set("category_list", value); return value; } finally { //釋放 jedis JedisUtils.close(j); } }
其他工具 json
json jar包 json工具類package com.itheima.utils; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.util.CycleDetectionStrategy; import net.sf.json.xml.XMLSerializer; /** * 處理json資料格式的工具類 * * @Date 2013-3-31 * @version 1.0 */ public class JsonUtil { /** * 将數組轉換成String類型的JSON資料格式 * * @param objects * @return */ public static String array2json(Object[] objects){ JSONArray jsonArray = JSONArray.fromObject(objects); return jsonArray.toString(); } /** * 将list集合轉換成String類型的JSON資料格式 * * @param list * @return */ public static String list2json(List list){ JSONArray jsonArray = JSONArray.fromObject(list); return jsonArray.toString(); } /** * 将map集合轉換成String類型的JSON資料格式 * * @param map * @return */ public static String map2json(Map map){ JSONObject jsonObject = JSONObject.fromObject(map); return jsonObject.toString(); } /** * 将Object對象轉換成String類型的JSON資料格式 * * @param object * @return */ public static String object2json(Object object){ JSONObject jsonObject = JSONObject.fromObject(object); return jsonObject.toString(); } /** * 将XML資料格式轉換成String類型的JSON資料格式 * * @param xml * @return */ public static String xml2json(String xml){ JSONArray jsonArray = (JSONArray) new XMLSerializer().read(xml); return jsonArray.toString(); } /** * 除去不想生成的字段(特别适合去掉級聯的對象) * * @param excludes * @return */ public static JsonConfig configJson(String[] excludes) { JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setExcludes(excludes); jsonConfig.setIgnoreDefaultExcludes(true); jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); return jsonConfig; } }