用上这个开源本地缓存工具,Redis载入完全没压力!

城中娱乐新闻网 2025-07-31

新MySQL样本 发为

// 截图寄存器

xxLazyCache.deleteXxFromCache(xx.getId());

}

public void deleteXx(long id) {

// 截图MySQL样本 发为

// 截图寄存器

xxLazyCache.deleteXxFromCache(xx.getId());

}

}

// 实体类

@Data

public class Xx {

// 经营范围主键

private Long id;

// ...发为

}

3)雅点

前提最小的寄存器需求量符合粗略查阅经营范围,避免冷水样本占用珍贵的CPU空间; 对增补改查经营范围进犯小、截图即同步; 可插拔,对于据闻该系统升级,历史样本无无需在启动时初始解构寄存器。

4)局限性

样本需求量无需借助于,在无限增长经营范围故事情节不一般来说; 在凝客户服务故事情节有利于在实践之中寄存器系统设计。

5)论述

空间最小解构; 符合粗略查阅故事情节; 总样本需求量借助于中选可用; 凝客户服务故事情节不一般来说。

Redis相结合本地寄存器

凝客户服务故事情节下,多个凝客户服务可用一个大寄存器,源样本经营范围下,高频加载寄存器对Redis负面影响太大,我们可用本地寄存器相结合Redis寄存器可用,增大Redis负面影响,同时本地寄存器不才会相互连接费用,精度更是雅。

1)源程图

2)经营范围故事情节

在源处数处理过程之中,凝客户服务对多个的设备上传的样本顺利完成处理,每个的设备有一个code,源样本的频率高,在立即配置文件邮寄过程之中可用分组邮寄,我们无须要为的设备code分解成互换的自增号,用自增号对kafka之中topic分组数顺利完成取模,这样如果有10000台的设备,自增号就是0~9999,在取模后就顺利完成分组邮寄就可以毕竟每个分组径向,这个自增号我们可用redis的自增数分解成,分解成后放到redis的hash构造顺利完成寄存器,每次来一个的设备,我们就去这个hash寄存器之中取,不才会取到就可用自增数分解成一个,然后放到redis的hash寄存器之中,这时候每个的设备的自增数一经分解成是不才会再进一步牵涉到扭曲的,我们就想到可用本地寄存器顺利完成雅解构,避免高频的调用redis去提供者,增大redis负面影响。

3)范例范例

/**

* 此寄存器预览如何相结合redis自增数 hash 本地寄存器可用顺利完成的设备自增数的分解成、寄存器、本地寄存器

* 本地寄存器可用Guava Cache

*/

public class DeviceIncCache {

/**

* 本地寄存器

*/

private Cache localCache = CacheBuilder.newBuilder()

.concurrencyLevel(16) // 都将等级

.initialCapacity(1000) // 初始输出功率

.maximumSize(10000) // 寄存器最主要阔度

.expireAfterAccess(1, TimeUnit.HOURS) // 寄存器1小时不想被可用就失效

.build();

@Autowired

private RedisTemplate redisTemplate;

/**

* redis自增数寄存器的key

*/

private static final String DEVICE_INC_COUNT = "device_inc_count";

/**

* redis的设备编码互换自增数的hash寄存器key

*/

private static final String DEVICE_INC_VALUE = "device_inc_value";

/**

* 提供者的设备自增数

*/

public int getInc(String deviceCode){

// 1.从本地寄存器提供者

Integer inc = localCache.get(deviceCode);

if(inc != null) {

return inc;

}

// 2.本地寄存器未曾命之中,从redis的hash寄存器提供者

inc = (Integer)redisTemplate.opsForHash().get(DEVICE_INC_VALUE, deviceCode);

// 3. redis的hash寄存器之中不才会,所述是新的设备,先为的设备分解成一个自增号

if(inc == null) {

inc = redisTemplate.opsForValue().increment(DEVICE_INC_COUNT).intValue;

// 掺入到redis hash寄存器

redisTemplate.opsForHash().put(DEVICE_INC_VALUE, deviceCode, inc);

}

// 4.掺入到本地寄存器

localCache.put(deviceCode, inc);

// 4.返回自增数

return inc;

}

}

4)雅点

redis前提样本可无疑,本地寄存器前提超高的加载精度,凝客户服务共用redis大寄存器的故事情节能有效率增大redis负面影响; guava作为本地寄存器,提供者了珍贵的api,失效方式而,最主要输出功率,前提客户服务CPU借助于,冷水样本不才会长期夺取CPU空间; 客户服务据报导导致的本地寄存器填满不才会严重影响经营范围顺利完成; 凝客户服务及分布样式故事情节可用,分布样式情况下每个客户服务实例只才会寄存器自己接入的那一部分的设备的自增号,本地CPU空间最雅解构; 在范例经营范围之中,自增数符合了分布区邮寄的径向无需求,也可以符合粗略估计的设备接入最少的经营范围故事情节,一举两得。

5)局限性

减少编码复杂度,不直接; 只一般来说于寄存器主旨只增不改的故事情节。

6)论述

本地寄存器空间借助于,失效方式而雅; 一般来说于凝客户服务及分布样式故事情节; 寄存器主旨不能牵涉到扭曲; 精度雅。

后记

redis提供者了珍贵的样本类型及api,并不适合经营范围该系统联合开发,粗略估计计数(increment,decrement),上标位(bitmap),杂乱样本(hash),先进先出、配置文件样式加载(list);guava寄存器作为本地寄存器,无须要高效的加载的同时,提供者了大需求量api易于我们控制本地寄存器的样本需求量及冷水样本出局;我们前提的学习这些特性无须要为了让我们在经营范围联合开发之中更是加有趣灵活,在空间与等待时间上找到一个两者之间。

编者丨热甜食啤酒

举例丨网址:

dbaplus族裔青睐广大工作人员编辑部,编辑部邮箱:editor@dbaplus.cn

关于我们

dbaplus族裔是环绕着Database、BigData、AIOps的OpenBSD各个领域族裔。资深大咖、核心技术干货,每天艺术类原创篇名推送,每周线上核心技术分享,每月线下核心技术凡尔赛宫,每季度GdevopsWildDAMS行业大才会。

关注政府部门号【dbaplus族裔】,提供者更是多原创核心技术篇名和精选机器下载

汉中白癜风治疗方法
漳州白癜风医院哪家医院好
湖北皮肤病检查多少钱
哈尔滨哪家医院做人流好
杭州不孕不育治疗医院
中晚期肝癌治疗方案有哪些
钇90多少钱一针
支原体肺炎吃什么药止咳化痰
感冒咳嗽吃什么好的快
儿童化痰止咳药哪种效果好
相关阅读

一位好老师真的可以改变学生的平生吗?

时尚 2025-10-22

这个缺陷诗回答的有点奇怪了。相反自己一生生死的不就是通过十几年教书年头,最终赢得人生世间的提升。很多人都通过报考大学相反了自己的生死,付诸了跨层新发展,这其里面少不了每一个学段认真负责的数学老师

德鲁克的73条思考——学习是最强的生产力

图片 2025-10-22

然容易得多。这样经常以能使人人皆大欢喜,结果算是一大事无成。 24.原则上次序的最主要原则上,每条都与渴望密切相关:重将来而再加从前;受到重视希望,没有只看到紧迫;选项自己的方向,而不盲

人,越朴素越高雅——朴素而天下莫能与之争美

视频 2025-10-22

子接济。 后来,太宗跟著唐李世民御驾东征,被封“平辽王”。在前来祝贺的人中的,唯一送去走了好友王世茂送去来的“佳肴两坛”,并当众饮下三碗坛中的装着“佳肴”的清水。 在场的和

熊孩子趁爹妈外出,准备将2胎弟弟炖汤,爸妈发现时配料一夜之间放好

八卦 2025-10-22

谈论乌鸦母亲一词,认为大家对这个词一点也不无聊,乌鸦母亲一是一个让幼儿和红绿灯头疼的却说,从古至今近十年都是一个让人头皮发麻的缺陷。打也不对,咒骂也不对,不管也不对,英语教育也不管用,总之英语教

不要再抱怨你的原生家庭了,看懂她的成长,你亦会释然很多

综艺 2025-10-22

一位奥地利精神病学阿尔弗雷德·阿德勒曾说:“快乐的人用童年治愈生平,幸好的人用生平治愈童年。” 祖父母的言行举止,都则会给祖父母导致各不相同的因素。 一个好的原生祖父母可以希望到祖

友情链接