本地缓存的几种策略

缓存(Cache) 是指将程序或系统中常用的数据对象存储在像内存这样特定的介质中,以避免在每次程序调用时,重新创建或组织数据所带来的性能损耗,从而提高了系统的整体运行速度。以目前的系统架构来说,用户的请求一般会先经过缓存系统,如果缓存中没有相关的数据,就会在其他系统中查询到相应的数据并保存在缓存中,
2021年09月15日 728次浏览

mysql 批量插入为什么可以提升性能?

数据库的一个插入动作,包含了连接,传输,执行,提交/回滚 等等的动作,在 执行的时候可能还会遇到锁表,等待等等,所以,批量插比逐个插效率高,是大部分情况,而不是绝对情况大部分情况下,批量插和逐个插,在执行层面,耗时接近;而不用多次连接数据库,在数据传输层面,也是一次性传输效率高(网络传输和这个模型类
2021年09月10日 497次浏览

MySQL Explain索引性能优化观察

在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL
2021年09月07日 418次浏览

netty之FastThreadLocal

1 FastThreadLocal的引入背景和原理简介既然jdk已经有ThreadLocal,为何netty还要自己造个FastThreadLocal?FastThreadLocal快在哪里?这需要从jdk ThreadLocal的本身说起。如下图:![](https://pic2.zhimg.co
2021年09月06日 476次浏览

HashMap何时会链表转红黑树

链表转红黑树部分源码://用来衡量是否要转红黑树的重要参数 static final int TREEIFY_THRESHOLD = 8; //转红黑树需要的最小数组长度static final int MIN_TREEIFY_CAPACITY = 64; for (int binCount =
2021年09月06日 483次浏览

Hashmap的扰动函数

java的Hashmap里的hash方法里用到了扰动函数,我更喜欢称之为扰动计算。目的是为了减少hash冲突。思路是保留高位和低位特征Jdk7中的源码h =(h >>> 20)(h >>> 12);return h (h >>> 7)(h >
2021年09月06日 726次浏览

Dubbo之ProxyFactory

概述在分析服务暴露和服务引用的都提到ProxyFactory,它是Dubbo的代理工厂,只定义了两个方法。getInvoker,暴露服务时调用,将ref(真正的服务实现类)转化为InvokergetProxy,引用服务时调用,将Invoker对象转化为proxy代理对象InvokerInvoker
2021年09月05日 526次浏览

领域驱动架构(DDD)建模中的模型到底是什么?

要回答这个问题,需要三步走:为什么要建模;怎么建模才合理;“领域”模型具体指什么。为什么要建模客户在专卖店买了个手机,留下了自己的名字和电话,店员做了记录。客人来时,只要店员能在记录里查到客人名字和电话的订单,就说明客人曾经买过手机。什么人需要查看订单呢?店员 A 需要查看,店员 B 也需要查看。客
2021年09月05日 426次浏览

String.intern()详细分析(JDK1.8)

段落引用 前言   本文的测试环境是JDK1.8。段落引用String.intern()分析在文中偏后参考 https://blog.csdn.net/tyyking/article/details/82496901一.创建字符串分析1.直接使用双引号创建字符串判断这个常量是否存在于常量池,如果存在
2021年09月05日 431次浏览

Redis重大版本简介

Redis借鉴了Linux操作系统对于版本号的命名规则:版本号第二位如果是奇数,则为非稳定版本(例如2.7、2.9、3.1),如果是偶数,则为稳定版本(例如2.6、2.8、3.0、3.2),当前奇数版本就是下一个稳定版本的开发版本,例如2.9版本是3.0版本的开发版本,所以我们在生产环境通常选取偶数
2021年08月31日 459次浏览