缓存优化策略
对放入缓存中的key进行优化:key的长度不能太长
原来mybatis中的缓存中的key的长度是
78945555(一串数字)+包名+类名+sql语句;
这个长度太长 。
这样我们可以使用算法:md5进行处理。
md5是进行加密的
md5的特点:
1.一切的文件和字符串等经过md5加密都会生成32位16进制的字符串
2.不同内容的文件经过md5进行加密,加密的结果不一致
3.相同内容的文件经过md5进行加密,加密的结果一致。
推荐在mybatis整合Redis中建议将key进行md5优化处理
自定义的缓存类中
使用spring中的工具类 DigestUtils.md5DigestAsHex(byte [ ] bytes);
//缓存的优化,key 的值要唯一并且简洁
//因此使用md5进行处理
//md5的特点就是 生成唯一的32位16进制的字段串
//相同文件中的内容相同那么使用md5生成的结果也是一致
private static String getMd5(String key){
return DigestUtils.md5DigestAsHex(key.getBytes());
}
/**
* 缓存放入值
*/
@Override
public void putObject(Object key, Object value) {
redisTemplate().opsForHash().put(id.toString(),getMd5(key.toString()),value);
}
/**
* 获取缓存的值
*
*/
@Override
public Object getObject(Object key) {
return redisTemplate().opsForHash().get(id.toString(), getMd5(key.toString()));
}