- 博客(19)
- 资源 (3)
- 收藏
- 关注
原创 锁 =》 Synchronized、锁升级过程、ObjectMonitor
每个对象都具有一个ObjectMonitor与之关联, 在C++中的数据结构如下:ObjectMonitor() { _count = 0; //记录数 _recursions = 0; //锁的重入次数 _owner = NULL; //指向持有ObjectMonitor对象的线程 _WaitSet = NULL; //调用wait后,线程会被加入到_WaitSet _EntryList = NULL ; /...
2021-05-06 22:01:00 123
原创 MySQL =》 InnoDB 的 内部结构和特性
参考:https://mp.weixin.qq.com/s?__biz=Mzg2NjE5NDQyOA==&mid=2247483787&idx=1&sn=e7d6b1d35de02560f9243c01074c804e&source=41#wechat_redirectMySQL探秘(三):InnoDB的内存结构和特性原创remcarpediem程序员历小冰2018-08-26 常言说得好,每个成功男人背后都有一个为他默默付出的女人,而对于M...
2021-04-04 17:06:17 90
原创 MySQL =》 InnoDB 一致性非锁定读 + InnoDB三种行锁算法
正在看:https://mp.weixin.qq.com/s?__biz=Mzg2NjE5NDQyOA==&mid=2247483782&idx=1&sn=b5548efc354a04cf986709af4b7efdd8&source=41#wechat_redirect
2021-04-03 21:39:14 31
原创 MySQL => 事务、四个隔离级别
事务的四个特征(ACID)Atomicity 原子性 Consistency 一致性 Isolation 隔离性 Durablitiy 持久性隔离性:四种隔离级别:Read Uncommitted ( 读未提交, 即 读到了未提交的数据) Read Committed (读提交, 即 读到了提交的数据) Repeatable Read(可重复读)【MySQL的默认隔离级别】 Serializable (串行化)定义(参考: https://de...
2021-04-01 21:37:41 55
原创 mysql =》 InnoDB 好 MyISAM 的区别
索引:高效查询数据的数据结构!索引的最左匹配特性:联合索引: 多字段索引(比如 name,age,sex), 避免第一个字段无法使用索引的现象。因为搜索时,始终是先根据第一个字段进行索引搜索,如果搜不到, 后面几个字段也就无法使用索引进行查询;使用B+tree作为索引结构的原因?首先, 什么是B+tree?真实数据存储在叶子节点(叶节点的数据域存储了真实数据), 非叶子节点并不存储真实数据,存储虚拟数据和指针。 如图,17和35都是虚拟数据。降低磁盘IO...
2021-03-30 21:59:35 42
原创 redis - 内存回收
使用引用计数算法,进行对象跟踪回收引用计数: refcount对象创建时, refcount = 1 当对象被一个新程序使用时, refcount + 1; 当对象不再被一个程序使用时 ,refcount -1 ; 当refcount = 0 时,表示 对象所占用的内存会被回收。...
2021-03-28 16:59:37 34
原创 redis - redisObject
redisObject 组成部分:type的取值有:type 类型常量 对象的名称 REDIS_STRING 字符串对象 REDIS_LIST 列表对象 REDIS_HASH 哈希对象 REDIS_SET 集合对象 REDIS_ZSET 有序集合对象 编码和底层实现:encoding 和 ptr 指针指向的底层数据结构先看看encoding取值有哪些:每种类型的对...
2021-03-28 15:48:49 43
原创 redis -> 跳跃表 skipList
讲的可以:https://www.cnblogs.com/hunternet/p/11248192.html
2021-03-27 21:08:23 49
原创 redis - String - SDS
目录C语言中的字符串:Redis 中是String 字符串:区别:Redis 中表示字符串 的String 类型 与C语音中的String字符串有什么区别?想要区分区别,一定要能明白他们分别都是什么C语言中的字符串:必须符合某种编码规则,如 ASCII; 结尾必须是空字符 ' \0 ' 作为结束符; 字符串中间不能有空格;Redis 中是String 字符串:Redis 是C语言编写的, 但是并没有使用C的字符串, 而是自己构造了一...
2021-03-27 15:36:46 96
原创 AQS =》 CountDownLatch
CountDownLatch核心类:private final Sync sync;继承AQSAbstractQueuedSynchronizer核心方法:await() 阻塞线程 , 直到同步状态status 变成0,线程才会被唤醒或打断抛出打断异常;countDown()sync.releaseShared(1); 内部调用releaseShared(1)方法,status减一;...
2021-03-18 21:37:49 37
原创 HashMap
参考:根据key获取哈希桶数组索引位置?hash()算法?这里的Hash算法本质上就是三步:取key的hashCode值、高位运算、取模运算。put()方法的详细执行? final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Nod...
2021-01-23 14:42:32 88
原创 redis
参考:https://zhuanlan.zhihu.com/p/99037321https://tech.meituan.com/2020/07/01/kv-squirrel-cellar.html
2020-12-22 15:52:46 48
原创 MYSQL 索引
SQL 索引https://wiki.jikexueyuan.com/project/sql/indexes.html索引是一种特殊的查询表,可以被数据库搜索引擎用来加速数据的检索。简单说来,索引就是指向表中数据的指针。数据库的索引同书籍后面的索引非常相像。例如,如果想要查阅一本书中与某个特定主题相关的所有页面,你会先去查询索引(索引按照字母表顺序列出了所有主题),然后从索引中找到一页或者多页与该主题相关的页面。索引能够提高 SELECT 查询和 WHERE 子句的速度,但是却降低了包含 U
2020-09-29 21:58:10 34
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人