1、分布式缓存一致性
- 读的时候,先读缓存,缓存没有的话,就读数据库,然后取出数据后放入缓存,同时返回响应。
- 更新的时候,先删除缓存,然后更新数据库。
zookeeper 临时节点解决分布式锁
canal 框架
2、缓存的应用场景,为什么使用缓存
查询需要经过复杂逻辑计算
并发访问请求比较多的时候
高并发,高性能
第一次慢以后都快
缓存出现的问题
数据不一致
缓存穿透
缓存雪崩
3、为什么String是final
出于安全考虑
String很多方法是navtive本地方法,重写不安全
4、消息中间件在高并发情况下,保证消息不丢失
ack确认
5、HashMap
1.8 基础数据+链表+红黑树
如何解决hash冲突问题
链表存放hash 值相等内部不同的放到一个链表中
初始容量16,负载因子0.75 每次超过16*0.75=12 扩容2倍
为什么0.75
空间利用率高,冲突少,折中方案