- 博客(4)
- 收藏
- 关注
原创 一文搞懂布隆过滤器和缓存穿透
文章目录缓存穿透什么是缓存穿透缓存数据的处理流程流程缓存穿透的概念怎么处理缓存穿透布隆过滤器原理缓存穿透什么是缓存穿透缓存数据的处理流程流程简要来说就是缓存这一层它读取速度很快,我们可以把热数据(也就是被访问频率很高的数据)放在这一层。一是增加效率,二是缓解躲在在缓存坚实的后背下的数据库的压力。至于当在数据库中读取到数据后更新缓存数据这一步,当然是为了保证缓存中的数据是使用最频繁的了,当一个数据多次跳过缓存在数据库中取访问时,那把他更新到缓存中一般是一种很好的办法,因为这样可以增加缓存的命中率,因
2021-08-07 13:16:36
459
原创 Zookeeper事件监听Watcher
关于zk的watcherZooKeeper允许客户端向服务端注册一个Watcher监听,当服务端的一些事件,比如节点更新,删除,增加。触发了这个Watcher,那么就会向指定客户端发送一个事件通知来实现分布式的通知功能。Watcher机制注意点zk原生提供的watcher通知是一次性的,必须重复注册这点可以通过Curator来改善,Curator是什么呢?我们来看看Zookeeper 的核心提交者 Patrick Hunt 对Curator的高度评价。“Guava之于Java就是Curator
2021-08-01 12:54:34
455
原创 Springboot中手动new的对象无法注入交给Spring容器管理的原因及解决办法
Springboot中Bean的注入我们都知道,Springboot可以使用方法级别注解(@Bean)和类级别注解(@Controller、@Component、@Service等)加包扫描的方式注入Beans。实现交给Spring容器管理。这样我们就能很方便的实现,在Controller中注注入Service,在Service中注入Mapper。比较常用的就是Service的注入(@Autowired)与使用,我们会经常利用封装好的Service层调用dao层的接口进行业务逻辑应用的处理。比如Cont
2021-05-26 17:37:24
4623
1
原创 Java中CAS操作本身怎么保证原子性及其原理分析
Java中CAS操作是怎么保证原子性的?在学习Java多线程时我们会接触到CAS这样一个概念,CAS其实就是Compare And Swap的一个缩写。Compare And Swap,顾名思义就是比较并交换,其实就是把当前值与你预期的值进行一个比较,如果一样再进行修改,否则不修改并返回失败。这里我解释一下,当前值与预期值的一个概念:多线程环境下很可能发生当我拿到一个值还没修改的时候,别的线程已经把这个值修改掉了,这样就会引发线程安全问题,所以CAS操作就是在修改前用一个当前值和期望值来进行比较,只有相
2021-05-21 10:56:29
3928
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅