Loading

摘要: 数据类型和底层结构的对应 数据的存储模型 string list hash set Zset 阅读全文
posted @ 2024-07-13 19:34 Duancf 阅读(16) 评论(0) 推荐(0)
摘要: [Redis]跳跃列表详解 阅读全文
posted @ 2024-07-13 19:33 Duancf 阅读(15) 评论(0) 推荐(0)
摘要: Redis 5.0 版本又引入了一个新的数据结构 listpack,它是对 ziplist 结构的改进版,在存储空间上会更加节省,而且结构上也比 ziplist 更精简。listpack 的整体形式和 ziplist还是比较接近的,如果你认真阅读了 ziplist 的内部结构分析,那么对于 1ist 阅读全文
posted @ 2024-07-13 19:33 Duancf 阅读(118) 评论(0) 推荐(0)
摘要: quicklist Redis早期版本存储list列表数据结构使用的是压缩列表ziplist 和普通的双向链表linkedlist,也就是说当元素少时用ziplist,当元素多时用linkedlist。 //链表的节点 struct listNode<T>{ listNode* prev; list 阅读全文
posted @ 2024-07-13 19:33 Duancf 阅读(52) 评论(0) 推荐(0)
摘要: Redis 为了节约内存空间使用,zset 和 hash 容器对象在元素个数较少的时候,采用压缩列表(ziplist)进行存储。压缩列表是一块连续的内存空间,元素之间紧挨着存储,没有任何冗余空隙。 >zadd programmings 1.0 go 2.0 python 3.0 java (inte 阅读全文
posted @ 2024-07-13 18:36 Duancf 阅读(126) 评论(0) 推荐(0)
摘要: 为什么需要分布式锁 现在大多数的项目都是由分布式架构所搭建起来的,常常会采用集群以及部署在多台服务器上等方式运行,想必现在nginx的反向代理、负载均衡已经无人不知无人不晓了吧。由于通过用户不同的电脑已经不同的浏览器进行访问项目,就会由nginx转发给集群中的项目实例,此时常用的锁由于跨服务器的原因 阅读全文
posted @ 2024-07-13 18:36 Duancf 阅读(46) 评论(0) 推荐(0)
摘要: SDS Redis 中的字符串是可以修改的字符串,在内存中它是以字节数组的形式存在的。我们知道 C 语言里面的字符串标准形式是以 NULL(即 0x\0)作为结束符,但是在Redis 里面,字符串不是这么表示的。因为要获取以 NULL 结尾的字符串的长度使用的是 strlen 标准库函数,这个函数的 阅读全文
posted @ 2024-07-13 15:43 Duancf 阅读(39) 评论(0) 推荐(0)
摘要: (请注意redis在rdb持久化(bgsave)和重写aof(bgrewriteaof)的时候创建子线程) Redis 是个单线程程序!这点必须铭记。也许你会怀疑高并发的 Redis 中间件怎么可能是单线程。很抱歉,它就是单线程,你的怀疑暴露了你基础知识的不足。莫要瞧不起单线程,除了Redis 之外 阅读全文
posted @ 2024-07-13 15:43 Duancf 阅读(24) 评论(0) 推荐(0)