- 博客(18)
- 收藏
- 关注
原创 缓存淘汰算法
1.LRULRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。实现:利用链表和hashmap。当需要插入新的数据项的时候,如果新数据项在链表中存在(一般称为命中),则把该节点移到链表头部,如果不存在,则新建一个节点,放到链表头部,若缓存满了,则把链表最后一个节点删除即可。在...
2019-12-27 11:44:58 134
转载 深入理解MyBatis中的一级缓存与二级缓存
先说缓存,合理使用缓存是优化中最常见的,将从数据库中查询出来的数据放入缓存中,下次使用时不必从数据库查询,而是直接从缓存中读取,避免频繁操作数据库,减轻数据库的压力,同时提高系统性能。一级缓存一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构用于存储缓存数据。不同的sqlSession之间的缓存数据区域是互相不影响的。也就是他只能...
2019-10-30 15:15:10 186
原创 Java 多线程总结
线程状态和wait/notify机制:https://juejin.im/entry/5a2bb783f265da43163cff74 java并发工具类:信号量Samaphore:https://juejin.im/post/5a38d2046fb9a045076fcb1f闭锁CountDownLatch:https://juejin.im/post/5a3267646fb9a0451d...
2019-09-26 09:53:37 116
原创 tcp协议文章集合
1.从TCP三次握手说起--浅析TCP协议中的疑难杂症(1)https://www.infoq.cn/article/sF6CgHVC20rH635NvjNW?utm_source=related_read&utm_medium=article
2019-08-27 15:43:22 126
原创 四层、七层负载均衡的区别
OSI(Open System Interconnection)七层参考模型,是参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。四层工作在OSI第四层,也就是传输层;七层工作在最高层,也就是应用层。1、从技术实现原理上所谓四层负载均衡就是使用IP加端口的方式进行路由转发;七层负载...
2019-08-16 15:03:15 321
原创 Java 集合总结
集合分类Java容器可分为两大类:Collection List ArrayList LinkedList Vector(了解,已过时) CopyOnWriteArrayList Set HashSet LinkedHashSet TreeSet CopyOnWriteArraySet Map HashMap ...
2019-08-14 17:43:06 90
原创 常用算法合集
排序算法小吴总结的排序算法文章,带图文:https://mp.weixin.qq.com/s/vn3KiV-ez79FmbZ36SX9lg
2019-08-06 11:25:13 169
转载 Java并发编程:volatile关键字解析
摘要:1.java的内存模型,由于主存读取速度较慢,CPU在处理每个线程都有自己的高速缓存。2.并发编程必须要保证原子性、可见性以及有序性。3.被volatile关键字修饰的变量1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。2)禁止进行指令重排序。4.Java内存模型具备一些先天的“有序性”,即不需要通过任何...
2019-07-30 11:43:13 83
原创 如何提升一个系统的吞吐量
背景: 吞吐量(Throughput)通常是指系统每秒完成的操作量。这个指标通常被称作每秒事务数(TPS)。一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。 (TPS)= 并发数/平均响应时间 。 每套系统这两个值都有一个...
2019-07-29 21:38:54 3283
原创 JVM参数优化
背景JVM server模式默认使用GC回收器是Parallel Scavenge,这是一个吞吐量优先的回收器,FULL GC时间过长,影响响应。另外默认的JVM参数在针对特定场景可以有优化的空间。参数调优Xss栈大小,默认一个线程的栈为1M。减少栈容量(比如512K)来换取更多的线程,可以有效解决内存溢出。UseG1GC这是JDK8最新款商用垃圾收集器,新生代和老年...
2019-07-18 20:19:07 125
原创 SQLite性能优化实践
背景 项目在小型服务器上需要使用到SQLite,在默认配置下(以下数据均在4C16G,SSD环境测试),会出现以下瓶颈。SQLite的写性能大概在100-200TPS,这样的写性能对服务器(哪怕是4g内存)来说也显得不够看。 并发能力不足,经测试并发量在10QPS以上就会概率性database is locked。 当遇到database is locked的异常信息,sql...
2019-06-18 19:21:09 1426
原创 负载均衡小结
why 业务流量比较小并且业务逻辑比较简单,单台服务器便可以满足基本的需求;但随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台机器的性能问题以及单点问题凸显了出来,因此需要多台机器来进行性能的水平扩展以及避免单点故障。What 负载均衡又分为四层负载均衡和七层负载均衡(四层负载做转发,客户端与实际服务器建链)。四层负载均衡工作在OSI模...
2019-01-29 11:59:29 152
转载 linux常用命令
查看系统配置 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv # 列出所有USB设备# lsmod # 列出加载的内核模块# en...
2019-01-29 11:21:56 110
原创 布隆过滤器总结
布隆过滤器的原理是,当一个元素被加入集合时,通过K个散列函数将这个元素映射成一个位数组中的K个点,把它们置为1。检索时,我们只要看看这些点是不是都是1就(大约)知道集合中有没有它了:如果这些点有任何一个0,则被检元素一定不在;如果都是1,则被检元素很可能在。这就是布隆过滤器的基本思想。 时间和空间效率较高(与hash比较) m值的选取 对于给定的p(误判率)和将要加入集合的元素...
2019-01-17 10:40:53 122
转载 Java优秀文章集合
目录Java基础:JVM基础面试题及原理讲解:Java基础:1.JVM基础面试题及原理讲解: http://www.importnew.com/31126.html2.JVM原理讲解导航https://zhuanlan.zhihu.com/p/34426768...
2019-01-10 15:53:22 156
原创 判断字符串为空
String s = null; //System.out.println(s.isEmpty());//空指针 s = ""; System.out.println(s.isEmpty());//true s = " "; System.out.println(s.isEmpty());//false System.out.println(s.trim()
2014-09-19 10:50:26 282
转载 HashMap的两种排序方式
Map map = new HashMap();map.put("d", 2);map.put("c", 1);map.put("b", 1);map.put("a", 3);List> infoIds = new ArrayList>(map.entrySet());//排序前for (int i = 0; i String id
2014-08-23 09:10:43 223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人