Java后端八股笔记
Redis八股
上两种都有可能导致脏数据
所以使用两次删除缓存的技术,延时是因为数据库有主从问题需要更新,无法达到完全的强一致性,只能达到控制一致性。
一般放入缓存中的数据都是读多写少的数据
业务逻辑代码👇
写锁👇
读写锁的方法确实可以达成强一致性,但是效率太低了。
👆默认一般使用everysec
RDB如果两次备份之间宕机了,会丢失数据
多端部署无法限制线程的互斥👆
👆EX 过期时间还是需要设定的,因为如果突然宕机了,锁设定了时间会按时间释放,不设定则无法释放会造成死锁。
同一个线程可重入锁!!!👆
👆主机宕机了后,一个从属机器变成了主机器,再次为新线程分配锁,造成了两个线程持有一把锁,无法保证主从的一致性
👆红锁可以保证主从数据的一致性。但是低效
一般业务中redis不能保证数据的强一致性,如果想保证强一致性可以使用zookeeper