版本:redis 5.0.3
1. 解读 Redis 的 adlist /dict源码
1. adlist
相比一般的双向链表,adlist 的独特之处在于:
- list 的结构体中,存在 dup、free、match 三种函数指针。
- 涉及到内存管理的
zfree
方法(在 zmalloc中)。此处先不整理,可以提前参考:zmallc.c源码解读。 - 增加了迭代器的相关操作。
A Coder,a Programmer,a Developer
版本:redis 5.0.3
相比一般的双向链表,adlist 的独特之处在于:
zfree
方法(在 zmalloc中)。此处先不整理,可以提前参考:zmallc.c源码解读。使用 Wireshark工具抓包,学习网络协议
为避免过早陷入网络协议的细节,建议提前阅读各种协议头部结构体中的插图
目标:
某.class
文件进行加载。某.class
文件是由那个类加载器完成加载的。思路:
Redis 与 Memcached 区别:
Memcached 是多线程,非阻塞 IO 复用的网络模型;Redis 是单线程,多路 IO 复用的网络模型。
Memcached 只支持 String 类型;Redis 支持更丰富的数据类型(主要五种,String、hash、list、set、zset)。
[官网] It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams
Memcached 将数据全部存在内存中;Redis 支持数据的持久化。
Memcached 没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据;Redis 是原生支持 Cluster 模式的。