解析Redis的缓存类型
作者:惠惠软件
HashMap/ConcurrentHashMap
HashMap 是一种基于哈希表的集合类,它提供了快速的插入、查找和删除操作。是很多程序员接触的第一种缓存 , 因为现实业务场景里,我们可能需要给缓存添加缓存统计、过期失效、淘汰策略等功能,HashMap 的功能就显得弱。
Broker 与 Name Server 集群中的所有节点建立长连接,定时每隔 30 秒注册 主题的路由信息到所有 Name Server。
Name Server 集群的作用就是注册中心,注册中心会保存路由信息(主题的读写队列数、操作权限等),路由信息就是保存在 HashMap 中 。
LinkedHashMap 缓存
LinkedHashMap 是 HashMap 的子类, 支持两种顺序插入顺序 、 访问顺序。
TreeMap缓存
TreeMap 是基于红黑树的有序 Map,它可以按照键的顺序进行遍历。 在一致性哈希中可以用作节点/虚拟节点的存储结构,用来维护节点在哈希环上的位置和键的有序性。
ByteBuffer 缓存
ByteBuffer 是字节缓冲区,主要用于用户读取和缓存字节数据,在网络编程里,经常需要分配内存,在高并发场景下,性能压力比较大。Cobar 抽象了一个 NIOProcessor 类用来处理网络请求,每个处理器初始化的时候都会创建一个缓冲池 BufferPool 。
以上四种缓存:HashMap/ConcurrentHashMap 经常用于配置缓存,对于 HashMap 来讲,HashMap + 读写锁 + 定时任务更新是常用的模式。LinkedHashMap 经常被用于创建最近最少使用缓存 LruCache ,使用责任链+ 装饰器的设计模式,内置 LruCache 的实现就是使用 LinkedHashMap 。TreeMap 是一种基于红黑树的有序 Map 。TreeMap 在一致性哈希中可以用作节点/虚拟节点的存储结构。ByteBuffer 主要用于用户读取和缓存字节数据,多用于网络编程、文件 IO 处理等。以上希望大家在使用过程中注意!
到此这篇关于解析Redis的缓存类型的文章就介绍到这了,更多相关Redis 缓存 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!