首页
学习
活动
专区
工具
TVP
发布

码猿技术专栏

欢迎关注微信公众号【码猿技术专栏】
专栏作者
290
文章
298363
阅读量
51
订阅数
大白话布隆过滤器,又能和面试官扯皮了!!!
爱撒谎的男孩
2023-08-25
1150
看完这篇缓存穿透的文章,保证你能和面试官互扯!!!
爱撒谎的男孩
2023-08-25
1130
select语句做了什么?
爱撒谎的男孩
2023-08-25
1050
完爆90%的性能毛病,数据库优化八大通用绝招!
毫不夸张的说咱们后端工程师,无论在哪家公司,呆在哪个团队,做哪个系统,遇到的第一个让人头疼的问题绝对是数据库性能问题。如果我们有一套成熟的方法论,能让大家快速、准确的去选择出合适的优化方案,我相信能够快速准备解决咱么日常遇到的80%甚至90%的性能问题。
爱撒谎的男孩
2023-01-05
4820
Zookeeper入门
导读 Zookeeper 相信大家都听说过,最典型的使用就是作为服务注册中心。今天陈某带大家从零基础入门 Zookeeper,看了本文,你将会对 Zookeeper 有了初步的了解和认识。 注意:本文基于 Zookeeper 的版本是 3.4.14,最新版本的在使用上会有一些出入,但是企业现在使用的大部分都是 3.4x 版本的。 Zookeeper 概述 Zookeeper 是一个分布式协调服务的开源框架。主要用来解决分布式集群中应用系统的一致性问题,例如怎样避免同时操作同一数据造成脏读的问题。 ZooKe
爱撒谎的男孩
2020-04-21
1.7K0
一条查询语句到底是如何执行的?
文章目录 1. 导读 2. 撸它 2.1. 1. 连接器 2.2. 2. 查询缓存【废材,8.0 版本完全删除】 2.3. 3. 分析器 2.4. 4. 优化器 2.5. 5. 执行器 3. 总结 导读 Mysql在中小型企业中是个香饽饽,目前主流的数据库之一,几乎没有一个后端开发者不会使用的,但是作为一个老司机,仅仅会用真的不够。 今天陈某透过一个简单的查询语句来讲述在Mysql内部的执行过程。 select * from table where id=10; 撸它 首先通过一张图片来了解一下
爱撒谎的男孩
2020-04-03
9360
Spring事务源码解析
2.1.4. TransactionManagementConfigurationSelector
爱撒谎的男孩
2019-12-31
1.3K0
Spring解决循环依赖
1、Husband创建Bean,先判断缓存池中是否存在,存在直接返回,不存在进入createBean创建的流程,调用构造方法创建一个早期的Bean【未进行属性赋值】,创建成功将其放入二级缓存earlySingletonObjects中,之后又调用addSingletonFactory方法将其放入三级缓存中并且将二级缓存中的移除,之后调用populateBean为属性赋值,在@Autowired的后置处理器中查找需要注入的依赖,发现Husband中的一个属性Wife,因此调用getBean方法从容器中获取,但是此时的Wife还未创建,因此又进入了doGetBean的流程,但是此时Wife并没有创建,因此在一二三级缓存中不能获取,又执行createBean方法创建Wife,同样调用构造方法创建一个早期Bean放入二级缓存中,调用addSingletonFactory放入三级缓存并移除二级缓存,然后调用populateBean方法为Wife属性赋值,在@Autowired的后置处理器中查找需要注入的依赖,发现Wife类中有一个属性是Husband,因此调用getBean方法,再次调用doGetBean获取Husband,但是此时的Husband已经创建成功【未赋值】,存放在三级缓存中,因此直接从三级缓存中取出Husband赋值给Wife属性,至此Wife属性已经赋值成功,直接添加到一级缓存(singletonObjects)中并且移除三级缓存,直接返回给Husband赋值,因此Husband中的属性也持有了Wife的引用,都创建并且赋值成功了。
爱撒谎的男孩
2019-12-31
8380
Shiro
文章目录 1. 项目搭建 2. Realm 2.1. 子类 2.2. 自定义Realm 2.3. 认证信息的缓存 2.4. 密码加密认证 3. 缓存管理器(CacheManager) 3.1. 清除缓存 3.2. 实现原理 4. 会话管理器(SessionManager) 4.1. 自定义SessionMananger 4.2. 自定义SessionDao 4.3. 自定义SessionId生成策略 4.4. 自定义Session监听器 4.5. 完成上述配置 4.6. 优化 4.7. 会话验证 4.7
爱撒谎的男孩
2019-12-31
1.5K0
springBoot高级
1、在springBoot中可以使用注解式开发缓存,默认没有开启缓存中间件,那么使用的就是存储在Map中的原理,但是我们还可以配置自己的缓存中间件,比如redis
爱撒谎的男孩
2019-12-31
5800
并发编程之volatile
文章目录 1. 并发编程之volatile 1.1. volatile的作用 1.2. 原理 1.2.1. 保证可见性原理 1.2.2. 保证有序性原理 1.2.3. 总结 1.3. volatile变量的开销 1.4. 使用场景 1.5. 参考文章 并发编程之volatile volatile称之为轻量级锁,保证了可见性和原子性。 volatile不会引起上下文切换,因此是轻量级的 volatile的作用 保障可见性,有序性和Long,double类型变量读写操作的原子性 volatile仅仅能保
爱撒谎的男孩
2019-12-31
3310
并发编程之三大性质
文章目录 1. 多线程的三大性质 1.1. 原子性 1.2. 可见性 1.2.1. 原因 1.2.2. 解决 1.3. 有序性 1.3.1. 指令重排序 1.3.2. 解决 1.4. 参考文档 多线程的三大性质 原子性 对共享变量更新操作的时候,要保证执行不可分割,比如银行转账,一旦在多线程的环境下将其分割了,那么可能造成的后果可能是转账的账户钱少了,但是转到的账户的钱可能不是那么多或者根本没有转过去 在单线程的环境下没有所谓的原子性,都是顺序执行的 多线程的环境下对共享变量的访问(读写)才会涉及原子性
爱撒谎的男孩
2019-12-31
5450
并发编程之线程同步机制的底层助手内存屏障
文章目录 1. 线程同步机制的底层助手 :内存屏障 1.1. 前提 1.2. 按照可见性划分 1.3. 保证可见性的原理 1.4. 按照有序性划分 1.5. 保证可见性和原子性详解图形 线程同步机制的底层助手 :内存屏障 前提 我们知道锁是可以保证可见性的,线程在获取锁和释放锁的时候会分别执行两个动作来保证可见性: 刷新处理器缓存 :保证了持有该锁的线程能够读取到前一个线程对共享数据的更新 冲刷处理器缓存 :保证了持有该锁的线程对共享数据所做的更新会对后续获取该锁的线程来说是保持可见的 Java虚拟机是
爱撒谎的男孩
2019-12-31
5450
Redis使用场景
文章目录 1. Redis使用场景 1.1. 缓存 1.2. 排行榜系统 1.3. 计数器应用 1.4. 社交网络 1.5. 消息队列系统 Redis使用场景 缓存 缓存机制几乎在所有的大型网站都有使用,合理地使用缓存不仅可以加快数据的访问速度,而且能够有效地降低后端数据源的压力。Redis提供了键值过期时间设置,并且也提供了灵活控制最大内存和内存溢出后的淘汰策略。可以这么说,一个合理的缓存设计能够为一个网站的稳定保驾护航。第 排行榜系统 排行榜系统几乎存在于所有的网站,例如按照热度排名的排行榜,按照发
爱撒谎的男孩
2019-12-31
6190
Hibernate之一级缓存
文章目录 1. Hibernate之一级缓存 1.1. 什么是一级缓存 1.2. 为什么使用一级缓存 1.3. 如何使用一级缓存 1.4. 一级缓存的规则 1.5. 一级缓存管理 1.6. 总结 Hibernate之一级缓存 什么是一级缓存 Hibernate创建每个Session对象时,都会给Session分配一块独立的缓存区,用于存放Session查询出来的对象,这个分配给Session的缓存区称之为一级缓存,也叫Session级缓存 为什么使用一级缓存 Session读取数据时,会优先向缓存区取数
爱撒谎的男孩
2019-12-31
5110
设计模式之原型模式
创建型模式之原型模式 定义 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式是实现了一
爱撒谎的男孩
2018-05-25
3830
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档