java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > 使用concurrentHashMap实现缓存

使用concurrentHashMap如何实现缓存

作者:蜗牛^^O^

文章介绍了使用ConcurrentHashMap实现缓存的线程安全性和初始化方法,以及如何处理高并发场景下的缓存清理和数据一致性问题,包括分桶、使用ConcurrentLinkedQueue以及使用CountDownLatch来确保缓存数据的不丢失

使用concurrentHashMap实现缓存

1、concurrentHashMap本身是线程安全的

2、使用@PostConstruct注解init函数,在生成bean的时候会调用init函数。init函数进行concurrenthashMap的初始化,分配初始空间大小。并且开启线程每隔一段时间处理清空缓存,flushAlll。

3、如果一个key需要存多条消息,并发很高,可以考虑分桶,使用多个concurrentHashMap,根据key来决定放到那个Map保存,Map里面使用另外的key进行散列。

4、add向缓存添加元素,map元素个数大于阈值,则进行缓存处理清理

难点一

难点二

上线发布,需要重启机器,缓存实例被销毁,怎么做到缓存的不丢失?

场景:

难点三

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文