摘要:
Redis的缓存穿透、缓存雪崩、缓存击穿 缓存处理流程 缓存穿透 一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。一些恶意的请求会故意查询不存在的key,请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。 如何避免? 对查询结果为空的 阅读全文
摘要:
一个URL之旅 在整个过程中,大致可以分为以下几个过程 DNS域名解析 TCP连接 HTTP请求 处理请求返回HTTP响应 页面渲染 关闭连接 DNS域名解析 在浏览器输入网址后,首先要经过域名解析,因为浏览器并不能直接通过域名找到对应的服务器,而是要通过 IP 地址。大家这里或许会有个疑问 计算机 阅读全文
摘要:
SQL语句 SQL SELECT 语句 SQL SELECT SELECT column_name,column_name FROM table_name 与 SELECT * FROM table_name SQL SELECT DISTINCT 在表中,一个列可能会包含多个重复值,有时希望仅仅列 阅读全文
摘要:
数据库中的锁 锁分类 按锁的粒度划分:表级锁、行级锁、页级锁 按锁级别划分:共享锁、排它锁、意向锁 按加锁方式划分:自动锁、显示锁 按使用方式划分:乐观锁、悲观锁 MySQL中的行级锁、表级锁和页级锁 行级锁:行级锁分为共享锁和排他锁。行级锁是MySQL中锁定粒度最细的锁。InnoDB引擎支持行级锁 阅读全文
摘要:
java中的锁 Java锁的类别 java中的锁按照不同的类别可以有如下的分类: 乐观锁/悲观锁 独享锁/共享锁 互斥锁/读写锁 可重入锁 公平锁/非公平锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 乐观锁/悲观锁 独享锁/共享锁 互斥锁/读写锁 可重入锁 公平锁/非公平锁 分段锁 偏向锁/轻量级 阅读全文
摘要:
红黑树与AVL AVL树 二叉搜索树只有保持平衡时其查找效率才会高。 要保持二叉搜索树的平衡不是一件易事。不过还是有一些非常经典的办法可以做到,其中最好的方法就是将二叉搜索树实现为AVL树。 AVL树得名于它的发明者 G.M. Adelson-Velsky 和 E.M. Landis,他们在 196 阅读全文
摘要:
死锁银行家算法 死锁 死锁的定义 如果一个线程集合中的每个线程都在等待这个集合中另一个线程的执行结果才能继续执行下去,若无其他外力,它们都无法推进,这就形成了死锁。 死锁的4个必要条件 1、互斥条件:一个资源在某时刻内只能允许一个线程进行访问; 2、占有且等待:一个线程A占有一部分资源,此时去申请另 阅读全文
摘要:
java正则表达式 1匹配验证-验证Email是否正确 public static void main(String[] args) { // 要验证的字符串 String str = "service@xsoftlab.net"; // 邮箱验证规则 String regEx = "[a-zA-Z 阅读全文
摘要:
java优先队列 我们知道队列是遵循先进先出(First-In-First-Out)模式的,但有些时候需要在队列中基于优先级处理对象。举个例子,比方说我们有一个每日交易时段生成股票报告的应用程序,需要处理大量数据并且花费很多处理时间。客户向这个应用程序发送请求时,实际上就进入了队列。我们需要首先处理 阅读全文