redis做增删改查工具类

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

}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值