08 2023 档案
摘要:# 对象介绍 Redis 底层的基本数据类型包括动态字符串、链表、字典、跳表、整数集合、压缩列表。但是 Redis并没有直接使用这些基本数据类型来构建键值对数据库,而是基于这些数据类型创建了一个对象系统,对象系统包含字符串对象、列表对象、哈希对象、集合对象、有序集合对象。 ```c struct r
阅读全文
摘要:SDS 动态字符串 Redis 是 c 语言实现的,传统 c 字符串存在不可变导致的频繁内存分配,一些 API 函数可能引起缓冲区溢出等问题。 Redis 在 c 字符串的基础上,封装实现了 SDS动态字符串,能够根据每次存储关键字的大小自动申请额外缓冲区内存,避免频繁申请和缓冲区溢出问题。 SDS
阅读全文
摘要:> 参考: > > NIO 详解(Java):https://juejin.cn/post/6844903605669986317 > > ByteBuffer(内存缓冲区):https://blog.csdn.net/u010430495/article/details/86087154 # 1、
阅读全文
摘要:# 1、NIO存在的问题 ## 1.1 客户端关闭导致服务端轮询 在关闭客户端时,服务端 Selector.select() 操作不会阻塞,会直接通过并且认为是 READ 状态,而此时的数据长度为0,就会导致空轮询操作。 ![image-20220906203301768](D:\note\nett
阅读全文