发表于: 2017-09-08 17:53:05
1 968
【今日完成】
成功配好了Spring-Data-Redis,昨天按照博客一步一步配置,结果还是失败了,不服气。于是今天又去仔细研究了一下,发现博客下面给出了代码地址。我就高高兴兴的去看源代码了。
把代码下载下来发现,居然博客里代码是不完全的。。。怪不得跑不起来啊。真的无语凝噎。
下面来介绍一下代码:
其实代码布局还是比较简单,就三个。
一开始是一个序列化的类,因为Redis只支持String和Byte【】,所以需要序列化转换。
/**
* 使用Jackson自定义json序列化工具
*/
public class JsonRedisSeriaziler {
public static final String EMPTY_JSON = "{}";
public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
protected ObjectMapper objectMapper = new ObjectMapper();
public JsonRedisSeriaziler(){}
/**
* java-object as json-string
* @param object
* @return
*/
public String seriazileAsString(Object object){
if (object== null) {
return EMPTY_JSON;
}
try {
return this.objectMapper.writeValueAsString(object);
} catch (Exception ex) {
throw new SerializationException("Could not write JSON: " + ex.getMessage(), ex);
}
}
/**
* json-string to java-object
* @param str
* @return
*/
public <T> T deserializeAsObject(String str,Class<T> clazz){
if(str == null || clazz == null){
return null;
}
try{
return this.objectMapper.readValue(str, clazz);
}catch (Exception ex) {
throw new SerializationException("Could not write JSON: " + ex.getMessage(), ex);
}
}
}
其次是一个Order,这是一个POJO类,特别要注意的是里面有一个序列化:
public class Order implements Serializable{
private static final long serialVersionUID = 1L;
private String id;
private String orderNo;
private double price;
private Date createDate;
public Order(String id,String orderNo,double price,Date createDate){
this.id = id;
this.orderNo = orderNo;
this.price = price;
this.createDate = createDate;
}
最后一个DAO类,里面定义了3个方法,save,read,delete。满足了基本功能。
@Repository
public class OrderDao {
@Autowired
private RedisTemplate<String,Order> redisTemplate;
public void save(Order order) {
/*redisTemplate.opsForList();
redisTemplate.opsForSet();
redisTemplate.opsForHash()*/
ValueOperations<String, Order> valueOper = redisTemplate.opsForValue();
valueOper.set(order.getId(), order);
}
public Order read(String id) {
ValueOperations<String, Order> valueOper = redisTemplate.opsForValue();
return valueOper.get(id);
}
public void delete(String id) {
ValueOperations<String, Order> valueOper = redisTemplate.opsForValue();
RedisOperations<String,Order> RedisOperations = valueOper.getOperations();
RedisOperations.delete(id);
}
}
至此一个完整的Redis工具类就OK了。经过验证也确实能运行。明天就准备配置到工程中了。
===================================================================
今天又看了付老师的洗骨换髓营——数据结构:
线性表:有限个元素组成的有限序列。
特点:内存空间连续,逻辑上相连,物理空间地址也相连。
当一个线性表为链式储存时,我们就称为“链表”,链表的节点中一般有一个指针指向下一个,也有一个空间是储存实际内容
数组:
数组的特点是储存的类型必须相同
树:
树是一种非线性的储存结构,有时候发现问题无法用线性来解决,就会动用树。
树里有二叉树和哈夫曼树两种比较特殊的树:
【明日计划】
提交任务六,开始任务七
【今日收获】
搞好了Jedis。
学习了基本数据结构
【任务进度】
虽然延期了,但马上就要搞定了
评论