一级缓存: 在应用运行过程中,我们有可能在一次数据库会话中,执行多次查询条件完全相同的SQL,MyBatis提供了一级缓存的方案优化这部分场景,如果是相同的SQL语句,会优先命中一级缓存,避免直接对数据库进行查询,提高性能。 local-cache-scope: session/statement ...
分类:
其他好文 时间:
2020-04-21 15:05:32
阅读次数:
90
[TOC] 集群简介 业务发展过程中碰到的峰值瓶颈 redis 提供的服务 OPS(操作) 可以达到 10万/秒,当前业务 OPS 已经达到 20万/秒 内存单机容量达到 256G,当前业务需求内存容量 1 T 使用集群方式可以解决上述问题 集群架构 集群就是使用网络将若干台计算机联通起来,并提供统 ...
分类:
其他好文 时间:
2020-04-21 09:14:21
阅读次数:
88
缓存击穿 缓存中没有但数据库中有的数据(一般是缓存时间到期),同时高并发读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大 解决 1.设置热点数据永远不过期。 2.加互斥锁,没有命中缓存的时候,加锁访问数据库,不造成数据库的瞬间压力 缓存穿透 用户想要查询一个数据,发现redis内存数 ...
分类:
其他好文 时间:
2020-04-20 01:34:40
阅读次数:
102
"索引原理" 架构 MySQL查询执行过程 1. 客户端向MySQL服务器发送一条查询请求 2. 服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段 3. 服务器进行SQL解析、预处理、再由优化器生成对应的执行计划 4. MySQL根据执行计划,调用存储引擎的API ...
分类:
数据库 时间:
2020-04-19 17:42:53
阅读次数:
80
答案是先下单再减库存 以 MySQL 作为 DB 为例,下订单就是 insert,在使用索引的情况下,insert 插入是行级锁,支持每秒 4W 的并发。减库存就是 update 操作,命中索引时也是行级锁,但是这是个独占锁,所有的操作都要等待前一个释放锁后才能继续 update。 问题就在这里,根 ...
分类:
其他好文 时间:
2020-04-19 01:01:34
阅读次数:
249
低自尊者常常会有这样的感觉: 总觉得自己很失败。 认为自身的成功都是碰巧。 在机会来临时,不敢去伸出手去接受。 最重要的是,认为自己不值得去拥有生命中美好的事物。 一个低自尊者,就算美好的事物降临到生活中,也会慌乱地把它丢得远远的,然后缩回自己的小窝,沉浸在熟悉的安全与懊悔中。他们就这样一步步把自己 ...
分类:
其他好文 时间:
2020-04-18 11:51:00
阅读次数:
177
# 一面1. java动态***2. JVM垃圾回收3. java并发相关的包4. 重载与重写的区别5. 进程和线程的区别,通信方式6. 数据库索引建立,组合索引,组合索引命中问题7. 数据库锁的级别8. 一道写SQL语句的题,计算学生的成绩和9. 网络相关,桥接和NAT10. 算法:升序数组,从某... ...
分类:
编程语言 时间:
2020-04-14 15:16:49
阅读次数:
83
流程 浏览器先根据这个资源的http头信息来判断是否命中强缓存。如果命中则直接加在缓存中的资源,并不会将请求发送到服务器 如果未命中强缓存,则浏览器会将资源加载请求发送到服务器。服务器来判断浏览器本地缓存是否失效。若可以使用,则服务器并不会返回资源信息,浏览器继续从缓存加载资源 如果未命中协商缓存, ...
分类:
Web程序 时间:
2020-04-12 14:45:18
阅读次数:
76
varnish作为一款优秀的缓存中间件,在电商网站上大量使用,可以大大加快静态页面的访问速度 那么,如何统计varnish的缓存命中率呢 1、首先必须确保日志中记录了hit or miss 需要调整启动脚本中的日志格式 ${path_varnish}/bin/varnishncsa -D -n na ...
分类:
其他好文 时间:
2020-04-12 10:38:38
阅读次数:
95
1.局部性与命中率 对于cache而言,其本质就是在高速寄存器与低速DRAM之间寻找一个平衡,拥有较大的存储空间与较快的速度,一般利用SRAM实现。为了实现高速的目的,我们希望cache中存储的数据可以包括一切cpu中需要用到的数据,从而避免重新回到DRAM导入数据,但cache的存储空间毕竟较小无 ...
分类:
系统相关 时间:
2020-04-08 12:22:15
阅读次数:
102