- 博客(2)
- 收藏
- 关注
原创 Redis
因为没有命中,线程2也去尝试获取锁,但是因为线程1已经获取锁,正在进行缓存重建,所以线程2获取互斥锁失败,这时线程2会休眠一会,然后再去重试,线程2会一直不断地重复上面的步骤,直到线程1写入缓存后,线程2就可以直接在缓存中获取数据了。例如存在一个线程1去查询缓存中的数据,如果发现数据的逻辑时间过期了,就去获取互斥锁,获取互斥锁成功后,会开启一个新的线程2,去查询数据库,进行缓存重建,写入缓存,重置逻辑过期时间,最后释放掉锁,线程1在开辟新线程后会直接返回过期数据。例如,有一个id为1的数据。
2024-04-08 23:39:13
1078
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅