前言 毫不夸张的说咱们后端工程师,无论在哪家公司,呆在哪个团队,做哪个系统,遇到的第一个让人头疼的问题绝对是数据库性能问题。如果我们有一套成熟的方法论,能让大家快速、准确的去选择出合适的优化方案,我相信能够快速准备解决咱么日常遇到的80%甚至90%的性能问题。 从解决问
参数优化 nginx配置文件主要分三个部分: 全局块,events块,http块 全局块: 从配置开头到events块间的部分.定义影响整个nginx运行的配置.nginx进程数(CPU总核数) events块: 定义服务器和用户网络连接. http块: nginx服务器的核心配置.用于定义实际的请求控制.它又可以分为http全局
功能描述 为了提升服务接口的性能,所以需要添加缓存。为了尽量避免添加缓存对业务代码的侵入性,所以采用aop模式(过滤器)来实现缓存功能。api缓存过滤器具备一下的能力。 (1)在过滤器中实现缓存功能,如果key存在则直接返回结果,如果不存在则进入业务层,在业务层处理完成后回到过滤器完
前言 在面试的时候这两年有一个非常高频的关于spring的问题,那就是spring是如何解决循环依赖的。这个问题听着就是轻描淡写的一句话,其实考察的内容还是非常多的,主要还是考察的应聘者有没有研究过spring的源码。但是说实话,spring的源码其实非常复杂的,研究起来并不是个简单的事情,所以
缓存 因为频繁的查询会很消耗资源,所以将经常查询且不经常修改的结果暂时放在内存中,需要的时候直接取一下。 一级缓存:默认开启 SQLSession级别,SQLSession关闭则失效 二级缓存:手动开启,作用于一个命名空间 测试一级缓存 创建两次相同的查询,返回两个数,可以在下面的截图中看到,只创
Redis学习笔记 1、Redis安装目录 redis-benchmark:性能测试工具 redis-check-aof:修复有问题的aof文件 redis-check-rdb:修复有问题的rdb文件 redis-sentinel:redis集群使用,启动哨兵 redis-server:redis启动命令 redis-cli:客户端,操作入口 2、redis相关知识 redis有1
缓存介绍 1. MyBatis的缓存级别 缓存概念上对比 一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问 二级缓存是SqlSessionFactory级别,通过同一个SqlSessionFactory创建的SqlSession查询的结果会被
一、本地缓存 设计思路 查询数据时先查看本地缓存中是否有数据,如果有数据直接返回,如果没有数据,到数据库查询后添加到本地缓存,并将数据返回。 优缺点 缺点 Memory是服务器内存的缓存,如果并发量大并查询的数据不一致,会造成内存非常大,同时会造成GC不断的回收内存,由于Memory内部
原型为函数独有,通过new继承, 原型链大家都有,查找规则:从当前实例查找再去原型链查找 实例的原型链指向构造函数的prototype 最上面是object 关于 Vue 编译原理这块的整体逻辑主要分三个部分,也可以说是分三步,这三个部分是有前后关系的: 第一步是将 模板字符串 转换成 element ASTs(解析
redis Redis的基本数据结构类型 大多数小伙伴都知道,Redis有以下这五种基本类型: String(字符串) Hash(哈希) List(列表) Set(集合) zset(有序集合) 它还有三种特殊的数据结构类型 Geospatial Hyperloglog Bitmap Redis为什么这么快? 1.基于内存实现:内存读写是比在磁盘快很多的,R
问题:从用户输入URL按下回车,一直到用户看到界面,期间经历了什么? 一、DNS解析(优先走缓存): 1.找浏览器DNS缓存解析域名 2.找本机DNS缓存:(备注:查看本机DNS缓存命令:ipconfig/displaydns > C:/dns.txt) 3.找路由器DNS缓存 4.找运营商DNS缓存(80%的DNS查找,到这一步就结束了
BufferedOutputStream字节缓存输出流 构造方法: BufferedOutputStream(OutputStream out)创建一个新的缓存输出流,以将数据写入指定的底层输出流 BufferedOutputStream(OutputStream out,int size )创建一个新的缓冲区,以将具有指定缓存区大小的数据写入指定的底层
作者:小林coding 计算机八股文网站:https://xiaolincoding.com 大家好,我是小林。 今天跟大家聊聊,常见的缓存更新策略。 Cache Aside(旁路缓存)策略; Read/Write Through(读穿 / 写穿)策略; Write Back(写回)策略; 实际开发中,Redis 和 MySQL 的更新策略用的是 Cache Aside,另外两种策略主要
项目上线后,浏览器出现白屏在控制台报错找不到文件,如下: 但是在强制刷新后,页面显示恢复正常,报错也消失,由此判断可能是浏览器缓存的问题, 经查询相关资料,找到以下几种清除缓存的方式 一、修改根目录index.html 在 head 里面添加下面代码 其中meta的作用 <meta http-equiv="pragram" c
什么是缓存 缓存是为了提高IO操作效率,提升数据读取命中率的一类硬件或者软件。在应用开发中,缓存通常是指将磁盘数据放在内存中的一类软件产品。 为什么需要分布式缓存 单体架构中用到的单机缓存把数据库的数据放到本地内存中,可以把数据写到HashMap,也可以写到成熟的缓存产品中。本
StringRedisTemplate常用操作 stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间 stringRedisTemplate.boundValueOps("test").increment(-1);//val做-1操作 stringRedisTemplate.opsForValue(
Redis 因为没有指定配置文件 需配置 redis-server redis.windows.conf 之后自动启动 测试性能 redis-benchmark -p 6379 -c 100 -n 10000 基础概念: 清空当前数据库:flushdb 清空全部数据库:flushall redis是单线程的 redis的瓶颈是机器的内存和网络的带宽,用单线程既然可以实
StringRedisTemplate常用操作 stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间 stringRedisTemplate.boundValueOps("test").increment(-1);//val做-1操作 stringRedisTemplate.opsForValue(
很多开发同学对SQL优化如数家珍,却对MySQL架构一知半解。岂不是只见树叶,不见森林,终将陷入细节中不能自拔。 今天就一块学习MySQL分层架构,深入了解MySQL底层实现原理,以及每层的作用,我们常见的SQL优化到底在哪一层做了优化? 1. MySQL整体架构 由图中可以看到MySQL架构主要分为Server层
在使用laravel框架的时候,在做网站迁移的时候,该框架的缓存非常严重,如何清理呢? 1、清除应用程序缓存 php artisan cache:clear 2、清理路由缓存 php artisan route:cache 3、清除配置缓存 php artisan config:cache 4、清除视图缓存 php artisan view:clear 常见适用场景: 1
Guava Cache有一些优点如下 :1. 线程安全的缓存, 与ConcurrentMap相似(前者更"好"), 在高并发情况下、能够正常缓存更新以及返回.2. 提供了三种基本的缓存回收方式 : 基于容量回收、定时回收和基于引用回收(本文没有提及引用回收).3. 提供了两种定时回收:按照写入时间, 最早写
每一个好习惯都是一笔财富,本文整理了写代码的16个好习惯,每个都很经典,养成这些习惯,可以规避多数非业务的bug!希望对大家有帮助哈,谢谢阅读,加油哦~ 1. 修改完代码,记得自测一下 「改完代码,自测一下」 是每位程序员必备的基本素养。尤其不要抱有这种侥幸「心理:我只是改了一个变量或者我
转载:linux下free命令详解 - 哪是什么大佬 - 博客园 (cnblogs.com) free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。 如果加上 -h 选项,输出的结果会友好很多: 有时我们需要持续的观察内存的状况,此时可以使用 -s 选项并指定间隔的秒数: $ free -h
遇到问题 在网页开发中,经常需要在网页中添加音乐模块,其中使用到的自然就是<audio>元素了 最近,在一个项目当中使用到了<audio>元素,其中遇到了几个问题,就是如何获取<audio>的总时长、当前播放时间以及缓存进度 解决问题 在网上找了一些资料后,发现了以下三个属性: 1. dura
Redis缓存雪崩,击穿,穿透以及解决方案 1、缓存雪崩:大面积key对应数据不存在(过期),当缓存服务器重启或者大量缓存集中在某一个时间段失效 由于原有缓存失效,新缓存未到期间,所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形