
数据库
文章平均质量分 71
阿苏丶丶丶
说得对
展开
-
Redis数据结构(三)——字符串对象、列表对象、hash对象、集合对象、有序集合对象
在前面的内容里,介绍了Redis用到的主要数据结构字符串、双端链表、字典、压缩链表、整数集合等。Redis基于这些数据结构构建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象。本文将介绍对象系统的机制。1. 对象类型和编码Redis对象由server.h中的redisObject结构表示:typedef struct redisObject { unsigned type:4; unsigned encoding:4; unsigned lru原创 2021-05-07 15:08:49 · 202 阅读 · 0 评论 -
Redis数据结构(二)跳表、整数集合、压缩列表
Skip List跳表是一种有序数据结构,Redis使用跳表作为有序集合键的底层实现之一。redis6.0的代码中,跳表结构由server.h中定义,其中zskiplistNode表示跳表节点,zskiplist保存跳表节点相关信息,比如节点数量,以及指向表头电点和表尾节点的指针等。上图左侧是zskiplist结构。其中header、tail表示头尾节点。level记录目前表内,层数最大的节点层数(不计算头结点)。length记录跳表长度,表示目前包含节点的数量(不计算头结点)。跳表节点type原创 2021-05-06 16:06:33 · 349 阅读 · 0 评论 -
Redis数据结构(一)字符串SDS、双端链表、字典
SDS特性1、常数时间获取长度2、杜绝缓冲区溢出,当连接字符串后长度超过buf实际长度,会预先扩展空间。3、空间预分配。当对SDS修改并且需要扩展空间时,SDS为预分配双倍字符串长度的空间(len < 1MB)。例如,当前sds长度为13,修改后len = 13,free = 13,buf实际长度为13 + 13 + 1 = 27(包括\0)。如果sds修改后len大于等于1MB,程序则分配1MB的未使用空间。例如,修改后len = 30MB,则buf的时间长度为30MB + 1MB +原创 2021-04-30 16:50:02 · 226 阅读 · 2 评论 -
Lasy Maintenance of MV ——SQL server物化视图的懒惰更新
摘要本篇文章利用行级版本控制实现了lazily视图更新,也可以根据根据查询来立即维护视图。贡献点 1)对用户透明的视图维护方法 2)利用行版本控制提供视图更新的表达式 3)合并多个维护任务并消除其中的冗余更新任务 4)系统空闲周期维护优先级队列的维护任务,查询到来可立即更新。 5)SQL server 实现version store的关键特性是,给定事务序列号TXSN和语句号ST...原创 2018-11-21 17:02:33 · 120 阅读 · 0 评论 -
Alibaba的OceanBase数据库环境配置与安装
声明:我参考github上面的OB官方文档来配置本地的OB环境,因为已经拥有集群,所以我只安装了OB数据库和C客户端,并没有搭建服务器。网站如下:https://github.com/alibaba/oceanbase/tree/master/oceanbase_0.4一、系统环境CentOs 6.5 g++ 4. 1.2二、准备安装环境在安装OceanBase前,请先根据磁盘规划和服务器原创 2017-10-16 16:29:14 · 20124 阅读 · 1 评论 -
快速理解脏读、不可重复读、幻读和MVCC
转载自https://cloud.tencent.com/developer/article/1450773转载 2021-04-26 15:33:15 · 185 阅读 · 0 评论