写点什么

Redis 开发常用规范

  • 2022 年 4 月 15 日
  • 本文字数:1430 字

    阅读完需:约 5 分钟

[](()3.规范 Key 的格式




合适的 key,便于查看,统计,排错。 比如:


| 网关 | GW |


| :-- | :-- |


| 平台名 | 平台缩写 |


“平台缩写“+“:”+“项目名”+“:”+“业务含义” 例如:GW:TRADE:USERID GW 是新网关,TRADE 是交易项目,USERID 为业务 ID。


“:”-作为 key 分隔符,方便客户端工具作为目录分级


[](()4.存储的 Key 一定要设置超时时间




如果应用将 Redis 定位为缓存 Cache 使用,对于存放的 Key 一定要设置超时时间!因为若不设置,这些 Key 会一直占用内存不释放,造成极大的浪费,而且随着时间的推移会导致内存占用越来越大,直到达到服务器内存上限!另外 Key 的超时长短要根据业务综合评估,而不是越长越好!(某些业务要求 key 长期有效。可以在每次写入时,都设置超时时间,让超时时间顺延。)


public Boolean set(final byte[] key, final byte[] value, final long liveTime) {


return redisTemplate.execute(new RedisCallback<Boolean>() {


public Boolean doInRedis(RedisConnection connection) throws DataAccessExcept Java 开源项目【ali1024.coding.net/public/P7/Java/git】 ion {


connection.set(key, value);


if (liveTime > 0) {


connection.expire(key, liveTime);


}


return Boolean.TRUE;


}


});


}


[](()5.对于必须要存储的大文本数据一定要压缩后存储




对于大文本【超过 500 字节】写入到 Redis 时,一定要压缩后存储!大文本数据存入 Redis,除了带来极大的内存占用外,在访问量高时,很容易就会将网卡流量占满,进而造成整个服务器上的所有服务不可用,并引发雪崩效应,造成各个系统瘫痪!


public Boolean setBigValue(final byte[] key, final byte[] value, final long liveTime){


return redisTemplate.execute(new RedisCallback<Boolean>() {


public Boolean doInRedis(RedisConnection connection) throws DataAccessException {


byte[] compressedBytes = CompressUtil.compress(value);


connection.set(key, compressedBytes);


if (liveTime > 0) {


connection.expire(key, liveTime);


}


return Boolean.TRUE;


}


});


}


压缩可参考:


public class CompressUtil {


private static final Inflater infl = new Inflater();


pri 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 vate static final Deflater defl = new Deflater();


private CompressUtil(){


}


public static byte[] uncompress(byte[] inputByte) throws IOException {


int len = 0;


infl.setInput(inputByte);


ByteArrayOutputStream bos = new ByteArrayOutputStream();


byte[] outByte = new byte[1024];


try {


while (!infl.finished()) {


len = infl.inflate(outByte);


if (len == 0) {


break;


}


bos.write(outByte, 0, len);


}


infl.end();

最后:学习总结——MyBtis 知识脑图(纯手绘 xmind 文档)

学完之后,若是想验收效果如何,其实最好的方法就是可自己去总结一下。比如我就会在学习完一个东西之后自己去手绘一份 xmind 文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。下方即为我手绘的 MyBtis 知识脑图,由于是 xmind 文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的 MyBtis 知识脑图原件(包括上方的面试解析 xmind 文档)



除此之外,前文所提及的 Alibaba 珍藏版 mybatis 手写文档以及一本小小的 MyBatis 源码分析文档——《MyBatis 源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!

用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
Redis开发常用规范_Java_爱好编程进阶_InfoQ写作平台