面试题精讲
# 尚硅谷java面试题精讲-第三季
https://www.bilibili.com/video/BV1Hy4y1B78T
# 4.spring
# 4.1 spring里的aop


spring5不一样:


# 4.2 spring循环依赖
# 面试题














# 三级缓存解决对象的循环依赖问题




# 循环依赖debug








# refresh方法


# finsishBeanFactoryIniilization


# pripareInstanteSigletons



# doGetBean

# getSingleton

初次走else,返回null
,找不到缓存,则开始创建流程:






# createbean


# docreatebean

createBeanInstance




# addSingletonFactory

# populateBean





# b初始化时填充属性a:









# 循环依赖的总结







# 5.redis
# 题目


# 数据类型


# 五大数据类型的落地应用


# string



# 分布式锁



# hash




# list


# set-无序无重复











# zset




# 5.2 分布式锁
# 面试题









# 改进1-单机加锁





# 改进2 分布式锁






jmeter压测,模拟并发
















# 使用事务来删除key




正常情况:

异常情况: 被加塞

另外用户加塞:

导致我自己事务失败. 类似mysql的乐观锁


# 使用jedis+lua脚本 删除key





使用zookeeper的强一致性来解决这个问题

# 综合解决方案









# 总结
https://www.bilibili.com/video/BV1Hy4y1B78T?p=61&spm_id_from=pageDriver
# 5.3 缓存过期淘汰策略




# 最大内存配置










# 定时删除,惰性删除







# 定期删除


# 内存淘汰策略



两种配置方式


# LRU算法
Caffeine 当下最优秀的内存缓存框架的使用与最佳实践+配合Redis做二级缓存 (opens new window)







# 手写lru

# 案例1





构造函数true; 访问顺序

构造函数false: 访问顺序

# 案例2 不依赖jdk
参考AQS













编辑 (opens new window)
上次更新: 2022/08/16, 20:05:05