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);*/
}
}