java 从缓存中怎么取想要的数据 Java高并发下缓存问题的现象及本质原因是什么?
浏览量:3477
时间:2023-04-27 07:02:26
作者:采采
Java高并发下缓存问题的现象及本质原因是什么?
缓冲击穿
缓存崩溃意味着缓存中没有用户请求的数据,但数据库中有用户请求的数据。此时,如果有许多并发用户可以 t通过缓存获取数据,只能从数据库获取数据,导致数据库压力瞬间增大,系统访问变慢。
缓存雪崩
缓存雪崩是指大量缓存数据同时过期。这时候大量的访问导致数据库压力剧增,进而宕机。
缓存雪崩和缓存崩溃的区别在于,缓存雪崩是指大量数据到期,缓存崩溃是指单个缓存数据到期。
本质原因是系统设计时缓存系统的设计不合理。
对于热点数据,可以考虑设置为永不过期,手动处理热点数据。
缓存数据的失效时间随机设置,避免大量缓存数据同时失效。
您可以考虑以分布式配置缓存。
java程序消耗内存太大怎么办?应该如何解决?
如果事实证明不是内存溢出,而是程序的正常需要,可以考虑把需要的数据放到redis中,而不是存储在java程序的变量中。
这样可以大大降低内存消耗,方便程序的集群部署和数据共享。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。