摘要: 浅谈 Redis 内存淘汰机制 在讲解 Redis 内存淘汰机制之前,相信大家都了解过 Redis 键的过期策略,其实,这两者是完全不同的东西。Redis 过期策略指的是 Redis 采用哪种策略来删除已经过期的键值对;而 Redis 内存淘汰机制是当 Redis 的运行内存超过 Redis 设置的最大内存之后,将采用什么策略来删 阅读全文
posted @ 2021-10-29 21:59 Maple~ 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 浅谈 Redis 键过期策略 在 Redis 中,我们都知道 Redis 的键值对都是存储在内存中的,要是我们一直往 Redis 中添加键值对,最后就会导致 OOM,所以我们需要定期的去删除一些键值对,来保证内存不会爆,此时我们就需要了解 Redis 的键过期策略了 在学会键过期策略之前,我们还是先来讲解如何使用键过期策略吧😄 阅读全文
posted @ 2021-10-29 21:58 Maple~ 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 深入理解MySQL锁 一、简单介绍一下锁结构吧 谈到锁,我们都知道锁的作用,但是我们先来简单讲讲锁的结构吧🤣🤣🤣 其实锁就是内存中的一个结构,在我们执行一个事务之前,MySQL表中的记录本来是没有锁的,也就是说一开始是没有锁结构和这条锁记录相关联的,如图所示: 如果事务T1想要对这条记录做改动时,它先到内存中查看有 阅读全文
posted @ 2021-10-29 21:53 Maple~ 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 吊打面试官之 ConcurrentHashMap 源码分析 一、为什么要使用 ConcurrentHashMap 在并发编程中使用 HashMap 可能会导致程序死循环,而是用线程安全的 HashTable 效率又非常低下,为了解决这个问题,ConcurrentHashMap 问世了。 1)线程不安全的 HashMap,在多线程环境下,使用 HashMap 阅读全文
posted @ 2021-10-29 21:50 Maple~ 阅读(157) 评论(0) 推荐(1) 编辑
摘要: 吊打面试官之 Java 线程池详解 吊打面试官之 Java 线程池详解 一、线程池是什么 线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。 线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者 阅读全文
posted @ 2021-10-27 19:20 Maple~ 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 深入浅出 Redis 持久化 一、Redis 持久化总览 持久化,顾名思义就是将内存中的数据存储到磁盘中。由于Redis 的读写都是在内存中,所以读写性能比较高,但是呢,内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便 Redis 重启时能够从磁盘中恢复原有的数据,而整个过程就叫做 阅读全文
posted @ 2021-10-26 20:01 Maple~ 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 吊打面试官之 HashMap 的前世今生 1、前置知识 HashMap 是我们常用的一个数据结构,它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却不是确定的。HashMap 最多只允许一条记录的键为null,允许多条记录的值为null。HashMap 非线程安全,即任一时间可以有多 阅读全文
posted @ 2021-10-26 19:45 Maple~ 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 吊打面试官之 Redis 底层数据结构详解 1、前置知识 我们知道,Redis 很快,但是 Redis 为啥能这么快呢,首先,因为它是内存数据库,所有操作都在内存上完成,内存的访问速度本身就很快。另一方面,就要归功于它的数据结构了。Redis 是一个键值对数据库,键值对是按照一定的数据结构来组织的,操作键值对最终就是对数据结构进行增删改查操作 阅读全文
posted @ 2021-10-25 18:42 Maple~ 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 吊打面试官之深入浅出 MySQL 索引底层原理 1、前置知识 在了解 MySQL 索引的底层原理之前,我们需要知道 MySQL 中数据页的相关知识,知道各个数据页可以组成一个双向链表,而每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表,每个数据页都会为存储在它里边的记录生成一个页目录,在通过主键查找某条记录的时候可以在页目录中使用二分 阅读全文
posted @ 2021-10-24 15:29 Maple~ 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 一文详解 volatile 关键字 1、volatile 的应用 在多线程并发编程中 synchronized 和 volatile 都扮演着重要的角色,volatile是轻量级的 synchronized,它在处理多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另一个线程能读到这个修改的值。如果 阅读全文
posted @ 2021-10-24 15:04 Maple~ 阅读(75) 评论(0) 推荐(0) 编辑