redis和mongodb工具类
来源:互联网 发布:农村 假冒 伪劣 数据 编辑:程序博客网 时间:2024/05/18 00:51
import java.io.File;import java.io.InputStream;import com.mongodb.gridfs.GridFSDBFile;/** * Mongodb存取文件 * */public interface FileDao {/** * 存储文件 * @param collectionName 集合名 * @param input 文件 * @param id 文件id * @param aliases 别名 * @param filename 文件名称 * @throws Exception */ public void saveFile(String collectionName, File input, String id, String aliases, String filename) throws Exception; /** * 存储文件 * @param collectionName 集合名 * @param input 文件流 * @param id 文件id * @param aliases 别名 * @param filename 文件名称 */ public void saveFile(String collectionName, InputStream input, String id, String aliases, String filename); /** * 存储文件 * @param collectionName 集合名 * @param input 文件字节数组 * @param id 文件id * @param aliases 别名 * @param filename 文件名称 */ public void saveFile(String collectionName, byte[] input, String id, String aliases, String filename); /** * 获得一个文件 * @param collectionName 集合名 * @param id 文件id 可为空 * @param filename 文件名 可为空 * @return */ public GridFSDBFile retrieveFileOne(String collectionName, String id, String filename); /** * 获得一个文件 * @param collectionName 集合名 * @param id 文件名id * @return */ public GridFSDBFile getFileById(String collectionName,String id); /** * 获得一个文件 * @param collectionName 集合名 * @param filename 文件名 * @return */ public GridFSDBFile getFileByFilename(String collectionName,String filename); /** * 删除文件 * @param collectionName 集合名 * @param id 文件名id */ public void delectFileById(String collectionName,String id); /** * 删除文件 * @param collectionName 集合名 * @param filename 文件名 */ public void delectFileByFilename(String collectionName,String filename);}
import java.io.File;import java.io.InputStream;import javax.annotation.Resource;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.stereotype.Repository;import com.mongodb.BasicDBObject;import com.mongodb.DBObject;import com.mongodb.gridfs.GridFS;import com.mongodb.gridfs.GridFSDBFile;import com.mongodb.gridfs.GridFSInputFile;import com.trustsaving.CacheMoudle.dao.FileDao;@Repositorypublic class FileDaoImpl implements FileDao{@Resourceprotected MongoTemplate mongoTemplate;@Overridepublic void saveFile(String collectionName, File input, String id,String aliases, String filename) throws Exception{if (collectionName==null||collectionName.trim().isEmpty()||input==null) {return;}if (!input.exists()||input.isDirectory()) {return;}delectFileById(collectionName,id);GridFS gfs =new GridFS(mongoTemplate.getDb(), collectionName);GridFSInputFile gfsFile = gfs.createFile(input);gfsFile.setId(id);if (filename!=null&&!filename.trim().isEmpty()) {gfsFile.setFilename(filename);gfsFile.setContentType(filename.substring(filename.lastIndexOf(".")));}if (aliases!=null&&!aliases.trim().isEmpty()) {gfsFile.put("aliases", aliases); }gfsFile.save();}@Overridepublic void saveFile(String collectionName, InputStream input, String id,String aliases, String filename) {if (collectionName==null||collectionName.trim().isEmpty()||input==null) {return;}delectFileById(collectionName,id);GridFS gfs =new GridFS(mongoTemplate.getDb(), collectionName);GridFSInputFile gfsFile = gfs.createFile(input);gfsFile.setId(id);if (filename!=null&&!filename.trim().isEmpty()) {gfsFile.setFilename(filename);gfsFile.setContentType(filename.substring(filename.lastIndexOf(".")));}if (aliases!=null&&!aliases.trim().isEmpty()) {gfsFile.put("aliases", aliases); }gfsFile.save();}@Overridepublic void saveFile(String collectionName, byte[] input, String id,String aliases, String filename) {if (collectionName==null||collectionName.trim().isEmpty()||input==null) {return;}delectFileById(collectionName,id);GridFS gfs =new GridFS(mongoTemplate.getDb(), collectionName);GridFSInputFile gfsFile = gfs.createFile(input);gfsFile.setId(id);if (filename!=null&&!filename.trim().isEmpty()) {gfsFile.setFilename(filename);gfsFile.setContentType(filename.substring(filename.lastIndexOf(".")));}if (aliases!=null&&!aliases.trim().isEmpty()) {gfsFile.put("aliases", aliases); }gfsFile.save();}@Overridepublic GridFSDBFile retrieveFileOne(String collectionName, String id,String filename) {if (collectionName==null||collectionName.trim().isEmpty()||(id==null&&filename==null)) {return null;}if (id!=null&&!id.trim().isEmpty()) {return getFileById(collectionName,id);}if (filename!=null&&!filename.trim().isEmpty()) {return getFileByFilename(collectionName,filename);}return null;}@Overridepublic GridFSDBFile getFileById(String collectionName, String id) {if (collectionName==null||collectionName.trim().isEmpty()||id==null||id.trim().isEmpty()) {return null;}GridFS gfs =new GridFS(mongoTemplate.getDb(), collectionName);DBObject query = new BasicDBObject("_id", id); GridFSDBFile gfsFile = gfs.findOne(query);return gfsFile;}@Overridepublic GridFSDBFile getFileByFilename(String collectionName, String filename) {if (collectionName==null||collectionName.trim().isEmpty()||filename==null||filename.trim().isEmpty()) {return null;}GridFS gfs =new GridFS(mongoTemplate.getDb(), collectionName);GridFSDBFile gfsFile = gfs.findOne(filename);return gfsFile;}@Overridepublic void delectFileById(String collectionName, String id) {if (collectionName==null||collectionName.trim().isEmpty()||id==null||id.trim().isEmpty()) {return;}GridFS gfs =new GridFS(mongoTemplate.getDb(), collectionName);DBObject query = new BasicDBObject("_id", id); gfs.remove(query);}@Overridepublic void delectFileByFilename(String collectionName, String filename) {if (collectionName==null||collectionName.trim().isEmpty()||filename==null||filename.trim().isEmpty()) {return;}GridFS gfs =new GridFS(mongoTemplate.getDb(), collectionName);gfs.remove(filename);}}
import java.util.List;import java.util.Map;import java.util.Set;import java.util.concurrent.TimeUnit;/** * 缓存redis类 * */public interface CacheRedis {/** * 保存对象 * @param key 键 * @param object 对象 * @param timeout 过期时间 * @param unit 时间单位 */public void setObject(String key,Object object,final long timeout, final TimeUnit unit);/** * 保存对象 * @param key 键 * @param map 对象map * @param timeout 过期时间 * @param unit 时间单位 */public void setObject(String key,Map<String, Object> map,final long timeout, final TimeUnit unit);/** * 保存对象 * @param key 键 * @param list 对象list * @param timeout 过期时间 * @param unit 时间单位 */public void setObject(String key,List<Object> list,final long timeout, final TimeUnit unit);/** * 保存对象 * @param key 键 * @param set 对象set * @param timeout 过期时间 * @param unit 时间单位 */public void setObject(String key,Set<Object> set,final long timeout, final TimeUnit unit);/** * 保存对象 * @param key 键 * @param object 对象 */public void setObject(String key,Object object);/** * 保存对象 * @param key 键 * @param map 对象map */public void setObject(String key,Map<String, Object> map);/** * 保存对象 * @param key 键 * @param list 对象list */public void setObject(String key,List<Object> list);/** * 保存对象 * @param key 键 * @param set 对象set */public void setObject(String key,Set<Object> set);/** * 获取对象 * @param key 键 * @return 对象 */public Object getObject(String key);/** * * @param key 键 * @return 对象map */public Map<String, Object> getObjectMap(String key);/** * * @param key 键 * @return 对象list */public List<Object> getObjectList(String key);/** * * @param key 键 * @return 对象set */public Set<Object> getObjectSet(String key);/** * 获取hash中对象 * @param key 键 * @param hashKey hash键 * @return 对象 */ public Object getObject(String key,String hashKey);/** * 增加list的对象 * @param key 键 * @param listKey list键 * @param object 对象 */public void addListObject(String key,Object object);/** * 增加set的对象 * @param key 键 * @param setKey set键 * @param object 对象 */public void addSetObject(String key,Object object);}
import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;import java.util.concurrent.TimeUnit;import org.springframework.data.redis.core.BoundHashOperations;import org.springframework.data.redis.core.BoundListOperations;import org.springframework.data.redis.core.BoundSetOperations;import org.springframework.stereotype.Repository;import com.trustsaving.CacheMoudle.redis.CacheRedis;import com.trustsaving.common.base.dao.AbstractBaseRedisDao;@Repositorypublic class CacheRedisImpl extends AbstractBaseRedisDao<String, Object> implements CacheRedis{@Overridepublic void setObject(String key, Object object, long timeout, TimeUnit unit) {if (key==null||object==null) {return;}setObject(key, object);redisTemplate.expire(key, timeout, unit);}@Overridepublic void setObject(String key, Map<String, Object> map, long timeout,TimeUnit unit) {if (key==null||map==null) {return;}setObject(key, map);redisTemplate.expire(key, timeout, unit);}@Overridepublic void setObject(String key, List<Object> list, long timeout,TimeUnit unit) {if (key==null||list==null) {return;}setObject(key, list);redisTemplate.expire(key, timeout, unit);}@Overridepublic void setObject(String key, Set<Object> set, long timeout,TimeUnit unit) {if (key==null||set==null) {return;}setObject(key, set);redisTemplate.expire(key, timeout, unit);}@Overridepublic void setObject(String key, Object object) {if (key==null||object==null) {return;}redisTemplate.opsForValue().set(key, object);}@Overridepublic void setObject(String key, Map<String, Object> map) {if (key==null||map==null||map.size()<=0) {return;}redisTemplate.opsForHash().putAll(key, map);}@Overridepublic void setObject(String key, List<Object> list) {if (key==null||list==null||list.size()<=0) {return;}redisTemplate.opsForList().leftPushAll(key, list);}@Overridepublic void setObject(String key, Set<Object> set) {if (key==null||set==null||set.size()<=0) {return;}for (Object object : set) {redisTemplate.opsForSet().add(key, object);}}@Overridepublic Object getObject(String key) {if (key==null||key.trim().isEmpty()) {return null;}return redisTemplate.opsForValue().get(key);}@Overridepublic Map<String, Object> getObjectMap(String key) {if (key==null||key.trim().isEmpty()) {return null;}BoundHashOperations<String, String, Object> bho= redisTemplate.boundHashOps(key);Set<String> keySet= bho.keys();if (keySet==null||keySet.size()<=0) {return null;}Map<String, Object> map=new HashMap<String,Object>();for (String string : keySet) {map.put(string, bho.get(string));}return map;}@Overridepublic List<Object> getObjectList(String key) {if (key==null||key.trim().isEmpty()) {return null;}BoundListOperations<String, Object> blo=redisTemplate.boundListOps(key);return blo.range(0, -1);//Long size= blo.size();//if (size==null||size<=0) {//return null;//}//List<Object> list=new ArrayList<Object>();//for (int i = 0; i < size; i++) {//list.add(blo.index(i));//}//return list;}@Overridepublic Set<Object> getObjectSet(String key) {if (key==null||key.trim().isEmpty()) {return null;}BoundSetOperations<String, Object> bso=redisTemplate.boundSetOps(key);return bso.members();}@Overridepublic Object getObject(String key, String hashKey) {if (key==null||key.trim().isEmpty()||hashKey==null||hashKey.trim().isEmpty()) {return null;}BoundHashOperations<String, String, Object> bho=redisTemplate.boundHashOps(key);return bho.get(hashKey);}@Overridepublic void addListObject(String key, Object object) {if (key==null||key.trim().isEmpty()||object==null) {return ;}redisTemplate.opsForList().leftPush(key, object);}@Overridepublic void addSetObject(String key, Object object) {if (key==null||key.trim().isEmpty()||object==null) {return ;}redisTemplate.opsForSet().add(key, object);}}
import java.util.Date;import java.util.List;import java.util.concurrent.TimeUnit;/** * 缓存redis工具类 * */public interface CacheUtilRedis {/** * 删除键 * @param key 键 */public void delete(String key);/** * 删除键 * @param list 键列表 */public void delete(List<String> list);/** * 删除hash中键 * @param key 键 * @param hashKey hash键 */public void delete(String key,String hashKey);/** * 删除set中值 * @param key 键 * @param object set值 */public void remove(String key,Object object);/** * 判断是否为set的成员 * @param key 键 * @param object set值 * @return */public Boolean isMember(String key,Object object);/** * 是否存在键 * @param key 键 * @return true存在 */public Boolean hasKey(String key);/** * hash中是否存在键 * @param key 键 * @param hashKey hash键 * @return true存在 */public Boolean hasKey(String key,String hashKey);/** * 设置键过期时间 * @param key 键 * @param timeout 过期时间 * @param unit 时间单位 * @return true设置成功 */public Boolean expire(String key, final long timeout, final TimeUnit unit);/** * 设置键过期时间 * @param key * @param date 失效日期 * @return true设置成功 */public Boolean expireAt(String key, final Date date);/** * 获得键过期时间 * @param key 键 * @param unit 时间单位 * @return 过期时间 */public Long getExpire(String key, final TimeUnit unit);}
import java.util.Date;import java.util.List;import java.util.concurrent.TimeUnit;import org.springframework.stereotype.Repository;import com.trustsaving.CacheMoudle.redis.CacheUtilRedis;import com.trustsaving.common.base.dao.AbstractBaseRedisDao;@Repositorypublic class CacheUtilRedisImpl extends AbstractBaseRedisDao<String, Object> implements CacheUtilRedis{@Overridepublic void delete(String key) {if (key==null||key.trim().isEmpty()) {return;}redisTemplate.delete(key);}@Overridepublic void delete(List<String> list) {if (list==null||list.size()<=0) {return;}redisTemplate.delete(list);}@Overridepublic void delete(String key, String hashKey) {if (key==null||key.trim().isEmpty()||hashKey==null||hashKey.trim().isEmpty()) {return;}redisTemplate.opsForHash().delete(key, hashKey);}@Overridepublic void remove(String key, Object object) {if (key==null||key.trim().isEmpty()||object==null) {return;}redisTemplate.opsForSet().remove(key, object);}@Overridepublic Boolean isMember(String key, Object object) {if (key==null||key.trim().isEmpty()||object==null) {return false;}return redisTemplate.opsForSet().isMember(key, object);}@Overridepublic Boolean hasKey(String key) {if (key==null||key.trim().isEmpty()) {return false;}return redisTemplate.hasKey(key);}@Overridepublic Boolean hasKey(String key, String hashKey) {if (key==null||key.trim().isEmpty()||hashKey==null||hashKey.trim().isEmpty()) {return false;}return redisTemplate.opsForHash().hasKey(key, hashKey);}@Overridepublic Boolean expire(String key, long timeout, TimeUnit unit) {if (key==null||key.trim().isEmpty()||unit==null) {return false;}return redisTemplate.expire(key, timeout, unit);}@Overridepublic Boolean expireAt(String key, Date date) {if (key==null||key.trim().isEmpty()||date==null) {return false;}return redisTemplate.expireAt(key, date);}@Overridepublic Long getExpire(String key, TimeUnit unit) {if (key==null||key.trim().isEmpty()||unit==null) {return null;}return redisTemplate.getExpire(key, unit);}}
import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.net.URL;import com.trustsaving.CacheMoudle.exception.SerializeException;/** * 对象序列化类 * */public class SerializeUtil {/** * 序列化对象 * @param object * @return */public static byte[]serialize(Object object) throws SerializeException,Exception{if (object==null) {throw new SerializeException(SerializeException.PARAM_IS_NULL, "序列化参数为空");}ObjectOutputStream oos=null;ByteArrayOutputStream baos=null;try {baos = new ByteArrayOutputStream();oos = new ObjectOutputStream(baos);oos.writeObject(object);byte[] bytes = baos.toByteArray(); return bytes;} catch (Exception e) {throw e;}}/** * 反序列化对象 * @param bytes * @return */public static Object unserialize(byte[]bytes)throws SerializeException,Exception{if (bytes==null) {throw new SerializeException(SerializeException.PARAM_IS_NULL, "反序列化参数为空");}ByteArrayInputStream bais = null;try { bais = new ByteArrayInputStream(bytes); ObjectInputStream ois = new ObjectInputStream(bais); return ois.readObject();} catch (Exception e) {throw e;}}/** * 文件序列化 * @param input 文件地址 * @return */public static byte[] serializeFile(String input)throws SerializeException,Exception{if (input==null) {throw new SerializeException(SerializeException.PARAM_IS_NULL, "序列化参数为空");}File fr = new File(input);if (fr==null||fr.exists()==false||fr.isDirectory()) {throw new SerializeException(SerializeException.IS_NOT_FILE, "文件不存在或是目录");}try {FileInputStream fis=new FileInputStream(fr);return readInputStream(fis);} catch (Exception e) {throw e;}}/** * 文件序列化 * @param input 文件 * @return */public static byte[] serializeFile(File input)throws SerializeException,Exception{if (input==null) {throw new SerializeException(SerializeException.PARAM_IS_NULL, "序列化参数为空");}if (input.exists()==false||input.isDirectory()) {throw new SerializeException(SerializeException.IS_NOT_FILE, "文件不存在或是目录");}try {FileInputStream fis=new FileInputStream(input);return readInputStream(fis);} catch (Exception e) {throw e;}}/** * 文件序列化 * @param input 文件流 * @return */public static byte[] serializeFile(InputStream input)throws SerializeException,Exception{if (input==null) {throw new SerializeException(SerializeException.PARAM_IS_NULL, "序列化参数为空");}try {return readInputStream(input);} catch (Exception e) {throw e;}}/** * 文件序列化 * @param input URL对象 * @return */public static byte[] serializeFile(URL input)throws SerializeException,Exception{if (input==null) {throw new SerializeException(SerializeException.PARAM_IS_NULL, "序列化参数为空");}InputStream istream = null; try { istream = input.openStream(); return readInputStream(istream); } catch (IOException e) { throw e; }}/** * 文件反序列化 * @param bytes 文件流 * @return */public static InputStream unserializeFile(byte[]bytes)throws SerializeException,Exception{if (bytes==null) {throw new SerializeException(SerializeException.PARAM_IS_NULL, "反序列化参数为空");}InputStream inputStream=new ByteArrayInputStream(bytes);return inputStream;}///**// * 从网络序列化图片// * @param imageUrl// * @return// *///public static byte[] serializeImage(URL imageUrl )throws SerializeException,Exception{//String[] imageFormats = ImageIO.getReaderFormatNames();//for (String string : imageFormats) {//System.out.println(string);//}//ByteArrayOutputStream outputStream = null;// try {// BufferedImage bufferedImage = ImageIO.read(imageUrl);// outputStream = new ByteArrayOutputStream();// ImageIO.write(bufferedImage, "jpg", outputStream);// } catch (IOException e) {// e.printStackTrace();// }// return outputStream.toByteArray();//}/** * 读取文件为byte数组 * @param inStream * @return * @throws Exception */public static byte[] readInputStream(InputStream inStream) throws Exception{ByteArrayOutputStream outStream = new ByteArrayOutputStream();//创建一个Buffer字符串byte[] buffer = new byte[1024];//每次读取的字符串长度,如果为-1,代表全部读取完毕int len = 0;//使用一个输入流从buffer里把数据读取出来while( (len=inStream.read(buffer)) != -1 ){//用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度outStream.write(buffer, 0, len);}//关闭输入流inStream.close();//把outStream里的数据写入内存return outStream.toByteArray();}}
0 0
- redis和mongodb工具类
- 浅析Redis 和MongoDB
- 按照redis和mongodb
- MongoDB和Redis区别
- redis 和mongodb区别
- MongoDB和Redis区别
- MongoDB和Redis区别
- MongoDB和Redis区别
- MongoDB和Redis比较。
- MongoDB和Redis区别
- MongoDB和Redis区别
- MongoDB和Redis区别
- mongodb和redis(未完)
- NoSQL数据库-MongoDB和Redis
- ganglia监控redis和mongodb
- NoSQL数据库-MongoDB和Redis
- NoSQL数据库-MongoDB和Redis
- NoSQL数据库-MongoDB和Redis
- Memcached和Redis
- linux 设置 tmpfs 大小
- PAT 1078. Hashing (25)
- POJ3067 Japan(树状数组)
- java 数组中的数据排序方法详解
- redis和mongodb工具类
- wildfly8 Log包冲突和file.encoding调整
- AVL树的实现
- 程序员月入过万已经不再是神话
- PackageInstaller 原理简述
- Log日志+Toast+try/catch
- Android Service 的生命周期
- 快速排序
- scrollLeft,scrollTop,滚动代码的总结