实践 缓存redis,谷歌guava, 分布式锁(线程锁,进程锁)

本文介绍了Java缓存的两种主要类型:本地缓存(如Guava Cache)和分布式缓存(如Redis)。本地缓存速度快但不具一致性,而分布式缓存提供一致性但需要维护高可用。还探讨了SpringBoot中Redis和Guava的整合,以及线程锁、进程锁和分布式锁的概念和实现,包括数据库、Redis和Zookeeper在分布式锁中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

缓存分为本地缓存和分布式缓存。以 Java 为例,使用自带的 map 或者 guava 实现的是本地缓存,最主要的特点是轻量以及快速,生命周期随着 jvm 的销毁而结束,并且在多实例的情况下,每个实例都需要各自保存一份缓存,缓存不具有一致性。

使用 redis 或 memcached 之类的称为分布式缓存,在多实例的情况下,各实例共用一份缓存数据,缓存具有一致性。缺点是需要保持 redis 或 memcached服务的高可用,整个程序架构上较为复杂。
 

 一.redis缓存(分布式缓存)

039_springboot炖cache_redis_哔哩哔哩_bilibili

参考链接的 注解实现redis的缓存特别有用....

SpringBoot整合Redis缓存_悠然予夏的博客-优快云博客_springboot整合redis缓存

 

 

 

 

二. springboot+谷歌的cache_guava(本地缓存)

Guava Cache是Google公司开发⼀种本地缓存机制,之所以叫本地缓存,是因为它不会把缓存数据放到外部⽂件或者其他服务器上,⽽是存放到了应⽤内存中。
Guava Cache的优点是:简单、强⼤、轻量级。

GuavaCache之后,被它的简单、强大、及轻量级所吸引。它不需要配置文件,使用起来和ConcurrentHashMap一样简单,而且能覆盖绝大多数使用cache的场景需求!一般而言,对于那些频繁需要查询比对的热点数据,我们采用使用缓存。

 

 

 

 

Springboot-本地缓存(Google Guava Cache)_于问问的博客-优快云博客_springboot本地缓存

springBoot集成guava cache实现本地缓存_兢兢业业的子牙的博客-优快云博客_guava cache springboot

还有Spring基于注解实现的缓存

Spring缓存注解_xyzko1的博客-优快云博客_spring缓存注解

三.锁---分布式锁(线程锁,进程锁), springboot实现分布式锁

线程锁: 主要用来给方法和代码块来加锁,多个线程同时访问被加锁的方法或者代码块时,同一时间只有一个线程在执行,其他线程只能访问该对象中的非加锁代码块

进程锁: 为了控制操作系统中多个进程访问一个共享资源,可以使用本地系统的信号量控制

分布式锁: 当多个进程不在同一个系统中时,使用分布式锁控制多个进程对资源的访问

分布式锁的实现思路3种

1.数据库表加锁

2.redis的分布式锁

3.zk的分布式锁

springboot分布式锁_好奇的菜鸟的博客-优快云博客_spring boot 分布式锁

分布式锁,进程锁,线程锁_刘翼荣的博客-优快云博客_分布式线程锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值