redisTemplate批量写入数据
/*** 批量写入数据* @param objectMap* @return*/public void saveMap(final Map<String,Object> objectMap) {//序列化成字节数组final Map<byte[],byte[]> byteMap=new HashMap<>();for(Map.Entry<String,..
·
/**
* 批量写入数据
* @param objectMap
* @return
*/
public void saveMap(final Map<String,Object> objectMap) {
//序列化成字节数组
final Map<byte[],byte[]> byteMap=new HashMap<>();
for(Map.Entry<String,Object> objectEntry:objectMap.entrySet()){
String key=objectEntry.getKey();
final byte[] keyBytes = redisTemplate.getStringSerializer().serialize(key);
Object value=objectEntry.getValue();
final byte[] valueBytes =SerializeUtil.serialize(value);
byteMap.put(keyBytes,valueBytes);
}
redisTemplate.execute(new RedisCallback<Object>() {
@Override
public Object doInRedis(RedisConnection connection) {
try{
connection.mSet(byteMap);
}catch (Exception ex){
log.error("redis批量写入数据异常:"+ex.getMessage(),ex);
}
return null;
}
});
}
-
SerializeUtil 序列化与反序列化工具类
package com.github.pig.common.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
/**
* 对象序列化与反序列化
*/
public class SerializeUtil {
/**
* 序列化
* @param object
* @return
*/
public static byte[] serialize(Object object) {
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 new RuntimeException(e.getMessage(), e);
}
}
/**
* 反序列化
* @param bytes
* @return
*/
public static Object unserialize(byte[] bytes) {
ByteArrayInputStream bais = null;
try {
// 反序列化
bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
return ois.readObject();
} catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
}
}
}
更多推荐
已为社区贡献24条内容
所有评论(0)