摘要:
定义 压缩列表ziplist是Redis中列表和哈希键的底层实现方式之一。 当一个列表只包含少量列表项,并且每个列表项要么是小整数值,要么是较短的字符串时,那么Redis就会使用压缩列表来作为列表的底层实现。 另外,当一个哈希表中只包含少量键值对时,并且每个每个键值对的键key和值value要么是小 阅读全文
posted @ 2023-08-14 22:24
秋天Code
阅读(62)
评论(0)
推荐(0)
摘要:
定义 整数集合是集合的实现方式之一,当一个集合只包含整数值元素时,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合的底层实现。 整数集合就是存放整数的一个数组,整数集合的结构体定义: typeof struct intset { // 编码方式 uint32_t encoding; 阅读全文
posted @ 2023-08-14 21:07
秋天Code
阅读(37)
评论(0)
推荐(0)
摘要:
字典是一种用来保存键值对的数据结构。 在字典中,一个key与一个value相对应,字典中的key是唯一的。 在Redis中字典使用哈希表作为底层实现,用数组来表示一个哈希表,每个元素都是一对key-value 同样,在Redis中字典由三部分组成: 哈希节点,保存一对key-value哈希表,用来爆 阅读全文
posted @ 2023-08-14 16:46
秋天Code
阅读(21)
评论(0)
推荐(0)
摘要:
链表是一种常用的数据结构,提供了顺序访问的方式,而且高效地增删操作。 Redis中广泛使用了链表,例如:列表的底层实现之一就是链表。 在Redis中,链表分为两部分:链表信息 + 链表节点。 链表节点用来表示链表中的一个节点,基础的值和指向前和后的指针链表信息,用来保存整个链表的信息,例如首尾节点、 阅读全文
posted @ 2023-08-14 15:38
秋天Code
阅读(37)
评论(0)
推荐(0)
摘要:
定义 众所周知,Redis是由C语言写的。 对于字符串类型的数据存储,Redis并没有直接使用C语言中的字符串。 而是自己构建了一个结构体,叫做“简单动态字符串”,简称SDS,比C语言中的字符串更加灵活。 SDS的结构体是这样的: struct{ int len; // 数组中已使用的字节的数量,即 阅读全文
posted @ 2023-08-14 15:21
秋天Code
阅读(52)
评论(0)
推荐(0)
摘要:
参考文章 Java中的偏向锁,轻量级锁, 重量级锁解析_萧萧九宸的博客-CSDN博客 本文是本人对以上文章的整理,建议先去看以上文章。 在Java中,一个锁对象的四种状态: 无锁偏向锁轻量级锁重量级锁 在Java中,一个锁就是一个对象 synchronized代码块是由一对monitorenter和 阅读全文
posted @ 2023-08-14 12:44
秋天Code
阅读(37)
评论(0)
推荐(0)
摘要:
并发编程的三个理念 原子性:一个操作要么全部完成,要么全部失败。可见性:当一个线程对共享变量进行修改后,其他线程也应立刻看到。有序性:程序按照顺序执行 synchronized基本使用 修饰静态方法,锁的是类,Class字节码对象修饰实例方法,锁的是当前实例对象修饰代码块,锁的是当前指定的对象 原理 阅读全文
posted @ 2023-08-14 12:14
秋天Code
阅读(36)
评论(0)
推荐(0)