02 2020 档案
摘要:内存分配和回收策略 1) 对象首先会进入Eden区 2) 大对象直接进入老年代 如:ByteBuffer byteBuffer = ByteBuffer.allocate(1 * 1024 * 1024); 大对象是指,需要大量连续内存空间的Java对象,典型的大对象就是很长的字符串或者大数组。 -
阅读全文
摘要:分布式系统如果保证接口的幂等性? 数据设置状态值 数据库设置唯一性 每个数据请求有唯一性标识 分布式session如何处理? tomcat+redis,TomcatRedisSessionManager,将所有部署的tomcat都将session存储到redis即可。使用方法不变,是Tomcat封装
阅读全文
摘要:Redis和memcached区别? Redis支持更多的数据结构和支持更丰富的数据操作 Redis线程模型? 文件事件处理器 为什么单线程的Redis比多线程的memcached效率要高得多(为什么reids是单线程的还可以支持高并发)? 存内存操作 核心是基于非阻塞的IO多路复用操作(监听Soc
阅读全文
摘要:Redisson 是一种操作redis的框架,类似于jedis,是一个redis客户端,支持分布式锁等,底层用lua脚本实现 Redisson 分布式锁原理: 分布式是锁? 是将同步请求转换为了串行执行,队列里面 redis 主从架构,由于同步问题导致锁失效问题? redis 会将多个节点加锁,比如
阅读全文
摘要:B-Tree 叶节点具有相同的深度,叶节点的指针为空 根节点存储数据 所有索引元素不重复 节点中的数据索引从左到右递增排列 由于B-Tree的特性,在B-Tree中按key检索数据的算法非常直观:首先从根节点进行二分查找,如果找到则返回对应节点的data,否则对相应区间的指针指向的节点递归进行查找,
阅读全文
摘要:什么是JMM JMM即为JAVA 内存模型(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在
阅读全文