redis做增刪改查工具類
阿新 • • 發佈:2019-02-16
RedisUitl.java
package com.jk.util; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.commons.lang.StringUtils; import redis.clients.jedis.HostAndPort; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisCluster; import redis.clients.jedis.JedisPoolConfig; public class RedisUitl { private static Jedis jedis = null; static{ jedis = new Jedis("192.168.1.224", 6379); /* Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>(); jedisClusterNodes.add(new HostAndPort("192.168.0.114", 6001)); jedis = new JedisCluster(jedisClusterNodes);*/ } /** * * 方法: add <br> * 描述: 新增或者修改 * 備註:如果沒有id:走新增 * 否則:走修改 <br> * 作者: Teacher song<br> * 時間: 2017-4-23 下午7:26:05 * @param tableName 表名 * @param params 儲存的資料物件 */ public static void addOrUpdate(String tableName,Map<String, String> javaToMap){ if (javaToMap.containsKey("id") && StringUtils.isNotEmpty(javaToMap.get("id"))) { update(tableName, javaToMap.get("id"), javaToMap); }else{ String id = jedis.incr(tableName+"_id").toString(); jedis.lpush(tableName+"_id_list", id); javaToMap.put("id", id); jedis.hmset(tableName+id, javaToMap); jedis.save(); jedis.close(); } }; /** * * 方法: add <br> * 描述: 新增 <br> * 作者: Teacher song<br> * 時間: 2017-4-23 下午7:26:05 * @param tableName 表名 * @param params 儲存的資料物件 */ public static void add(String tableName,Map<String, String> javaToMap){ String id = jedis.incr(tableName+"_id").toString(); jedis.lpush(tableName+"_id_list", id); javaToMap.put("id", id); jedis.hmset(tableName+id, javaToMap); jedis.save(); jedis.close(); }; /** * * 方法: findCount <br> * 描述: 查詢數量 <br> * 作者: Teacher song<br> * 時間: 2017-5-4 上午9:51:24 * @param tableName 表名 * @return count */ public static Integer findCount(String tableName){ Long llen = jedis.llen(tableName+"_id_list"); return Integer.parseInt(llen.toString()); } /** * * 方法: findById <br> * 描述: 通過id獲取單個數據 <br> * 作者: Teacher song<br> * 時間: 2017-5-4 下午2:44:10 * @param tableName 表名 * @param id 主鍵id * @param javaBean 需要返回的Bean * @return javaBean */ public static <T> T findById(String tableName,String id,T javaBean) { Map<String, String> hgetAll = jedis.hgetAll(tableName+id); T mapToJava = MapUtil.mapToJava(javaBean, hgetAll); return mapToJava; } /** * * 方法: find <br> * 描述: 查詢 <br> * 作者: Teacher song<br> * 時間: 2017-4-23 下午8:06:47 * @param tableName 表名 * @param page 第幾頁 * @param rows 每頁條數 * @param javaBean 需要轉換的javaBean物件 * @return */ public static <T> ArrayList<T> find(String tableName,int page,int rows,T javaBean){ //計算開始位置 int start = (page-1)*rows; //計算結束位置 int end = page * rows-1; //返回物件 ArrayList<T> returnList = new ArrayList<T>(); List<String> idList = jedis.lrange(tableName+"_id_list", start, end); for (String id : idList) { Map<String, String> userMap = jedis.hgetAll(tableName+id); returnList.add(MapUtil.mapToJava(javaBean, userMap)); } jedis.close(); return returnList; } /** * * 方法: del <br> * 描述: 通過id刪除 <br> * 作者: Teacher song<br> * 時間: 2017-4-23 下午8:12:28 * @param tableName 表名 * @param id 刪除的id集合 */ public static void del(String tableName,String ... id){ for (int i = 0; i < id.length; i++) { //刪除idList jedis.lrem(tableName+"_id_list", 1, String.valueOf(id[i])); //刪除id對應的map jedis.del(tableName+id[i]); } jedis.save(); jedis.close(); } /** * * 方法: update <br> * 描述: 修改(修改是全部欄位修改,所以每個欄位都不能空) <br> * 作者: Teacher song<br> * 時間: 2017-4-23 下午8:21:25 * @param tableName 表名 * @param id 要修改的id * @param javaBean 修改儲存的物件 */ public static void update(String tableName,String id,Map<String, String> javaToMap){ jedis.hmset(tableName+id, javaToMap); jedis.save(); jedis.close(); } public static void main(String[] args) { //新增 /*TestBean testBean = new TestBean(); testBean.setName("測試名字"); Map javaToMap = MapUtil.javaToMap(testBean); RedisUitls.add("user", javaToMap);*/ //查詢 /* ArrayList<TestBean> find = RedisUitl.find("user", 1, 10,new TestBean()); for (TestBean testBean : find) { System.out.println(testBean.getId()); System.out.println(testBean.getName()); }*/ //刪除 /*String id = "1"; RedisUitls.del("user", id);*/ //修改 /*TestBean testBean = new TestBean(); testBean.setId("2"); testBean.setName("李四"); RedisUitls.update("user",testBean.getId(),testBean);*/ } }