mysql为什么要使用B+做索引结构?
要在很多数据里面查找数据,通常的做法是2种:
1.hash表
2.树结构
继续阅读→
要在很多数据里面查找数据,通常的做法是2种:
1.hash表
2.树结构
继续阅读→
缓存穿透
问题: 继续阅读→
我们通常使用redis设置值时,都是逐个设置的,每次设置,都会有建立链接,发送数据,等待响应,结束链接的过程。
而如果使用了pipline,那么就可以不等待响应直接批量发送命令给redis,在最后发送完后一次性获取结果
继续阅读→
zk的服务有3种类型:
leader:参与选举,参与投票、提供读写
follower:参与选举,参与投票、提供读,不提供写
observer:不参与选举,不参与投票,提供读,不提供写 继续阅读→
next求解的代码,目的是找到当前i位置,如果下一个不匹配,需要回溯到哪里
继续阅读→
关于LRU算法,这里有一个java实现方式使用LinkedHashMap的accessOrder实现LRU算法
redis我们设置key默认是可以不设置缓存时间的,那么如果大量key堆积在内存中,导致内存耗尽,redis就会走内存淘汰机制:
我们可以通过redis.conf中的maxmemory来设置阀值:
继续阅读→
我们需要将请求的内容转换为指定格式,并且响应指定格式的内容,我们可以自定义转换器。
继续阅读→
引入xml支持的包
继续阅读→
通过Future配合Callable可以获取线程执行的结果,并且可以阻塞获取
继续阅读→
spring里面,事物分2种,编程式事物、声明式事物
编程式事物:使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate 继续阅读→
mysql的写入过程如下图: 继续阅读→
阅读全文先上图,看下图中beanFactory和FactoryBean各在哪 继续阅读→
阅读全文Spring提供的扩展类,用于增强bean
继续阅读→
AbstractBeanFactory.doGetBean(); 继续阅读→
阅读全文常用命令如下:
subscribe channel [channel …]:订阅一个或多个频道 继续阅读→
例如车辆有,价值(price)和长度(length)2个属性,我们需要分别根据这两个属性进行排序,
添加a、b、c,3辆车
继续阅读→
SORT 命令的排序命令选项有:ASC、DESC、ALPHA、LIMIT、STORE、BY、GET
继续阅读→
开启事物(multi),开启事物后,执行命令返回(QUEUED)表示命令已压到队列中,执行(exec)按队列顺序提交事物,返回ok即表示提交成功
继续阅读→
1.mbd.isSingleton()单例
2.mbd.isPrototype()原型,即多例
3.ohter,Request、Session等
继续阅读→
按照Bean名称从BeanFactory中获取或创建Bean的实例,然后反射将其注入属性的值中 继续阅读→
阅读全文查看docker跑的任务 继续阅读→
阅读全文@Autowired
是由spring 2.5版本引入的
1.默认使用类type进行注入,如果需要使用名称那么需要添加一个注解
@Qualifier("beanName"),
2.Autowired还有一个属性,require,默认是ture,如果类不存在就忽略,可以设置为false
@Autowired(required = false)阅读全文
TCP的拥塞控制,实际上就是对当前双方传输流量控制的方法;
例如A给B传数据包
A第一次传了4个包给B:1、2、3、4;
继续阅读→
思想就是使用索引即可找到需要使用的数据,不需要回表去查数据,其实就是索引中已经包含来你select的数据,不需要回到表里面去找数据来。
继续阅读→
B+树是应文件系统所需而产生的一种B树的变形树(文件的目录一级一级索引,只有最底层的叶子节点(文件)保存数据)非叶子节点只保存索引,不保存实际的数据,数据都保存在叶子节点中,这不就是文件系统文件的查找吗?
继续阅读→
如何在所有子线程执行完后,才继续执行主线程?
继续阅读→
创建一个可缓存线程池,应用中存在的线程数可以无限大
继续阅读→
除了使用synchronized修饰代码块或者方法,还可以使用Lock方式添加锁,不过要自己释放锁。
继续阅读→
类加载器主要又三种:
加载class的过程是:装载、链接、初始化
继续阅读→
我们可以使用如下命令,查看当前java编译器和编译器模式:
继续阅读→
Object类提供类finalize方法,用于用户自定义销毁逻辑,如果对象有特殊的销毁逻辑,便可以重写finalize方法
继续阅读→
1、==比较的是内存的地址,而不是地址指向的值
2、equals通过都是对象重写的包装方法,通常都是对比值是否相同
继续阅读→
题目:实现一个函数,把字符串中的每个空格替换城”%20″,例如输入”nihao java”,则输出”nihao%20java”。
继续阅读→
题目:在一个二维数组中,每一行都按照从左到右递增顺序排序,每一列都按照从上往下递增排序,请完成一个函数,出入这样一个二维数据,和一个整数,判断数组中是否含有该整数
继续阅读→
有如下特点:
只有一个实例。
自我实例化。
提供全局访问点。
继续阅读→
给定一个字符串,请你找出其中不含有重复字符串的「最长字符串」的长度
例如:asdcsasdecxc
长度:6
继续阅读→
RDB
RDB是生成一个压缩后的二进制文件保存数据
继续阅读→
下面介绍5种类型中使用到的编码格式,以及内部转换逻辑:
继续阅读→
启动2台rabbit,先配置机器可以允许除localhost以外访问web页面,方便查看状态
继续阅读→
方法就是hash槽。
登陆任意对redis client,在get和set 时都会
对key通过CRC16算法取余后,得出的结果槽,然后确定槽属于哪个具体对client,然后将请求转发过去。
这里注意,server使用client提供的密钥进行对称加密,client用server提供的公钥进行非对称加密
继续阅读→
线程池的创建实际上都是同一个方法(ThreadPoolExecutor): 继续阅读→
阅读全文1.先检查当前域名,浏览器是否又缓存
继续阅读→
一、强引用
我们正常new一个对象,就是强引用
String hello = new String(“value”); 继续阅读→
上锁 继续阅读→
阅读全文LRU是Least Recently Used的缩写,即最近最少使用算法:
基础理论:最近使用的数据,需要提高访问效率,很长时间不使用的数据,对访问效率要求更低。
继续阅读→
1.0默认不是长链接,即每次发送接收数据都要三次握手
1.1默认长链接,即设置Keep-Alive
2.0压缩header头,多路复用(一个request请求多个资源,服务多一个response返回多个资源)
继续阅读→