摘要:
概述 1.数据库结构 2.数据库键空间 3.键生存时间 4.持久化对过期键处理 5.数据库通知 1.数据库结构 Redis服务器将所有server状态都保存在数据结构中的db数组,服务器会根据dbnum来决定创建多个个数据库,默认为16个。 创建db后,如下所示: 同样的在redisClient的数 阅读全文
摘要:
概述 1.数据库结构 2.数据库键空间 3.键生存时间 4.持久化对过期键处理 5.数据库通知 1.数据库结构 Redis服务器将所有server状态都保存在数据结构中的db数组,服务器会根据dbnum来决定创建多个个数据库,默认为16个。 创建db后,如下所示: 同样的在redisClient的数 阅读全文
摘要:
概述 前面几张介绍了一些Redis的数据结构,比如SDS,集合,字典等,但是Redis并不会直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这些对象包括字符串对象,列表对象,哈希对象,集合对象和有序集合对象。每种对象都用到了一种或多种前面介绍的数据结构。 通过不同类型 阅读全文
摘要:
概述 1.intset概述 2.intset实现 3.intset升级 intset概述 整数集合是Redis集合键的底层实现之一,当值都为整数时,redis就会选择整数集合作为底层实现。 可以保存int16_t,int32_t,int64_t类型的整数值,并且集合中不会出现重复元素。 intset 阅读全文
摘要:
概述 1.跳跃表的介绍 2.跳跃表的数据结构 跳跃表的介绍 跳跃表是一个有序的数据结构,通过在每个节点维护多个执行其他节点的指针,从而达到快速访问的目的。 在Redis中只有两个地方用到了跳跃表,一个是有序集合键,另一个是在集群节点作为Redis内部的数据结构。具体源码在本章不介绍了,感兴趣可以去查 阅读全文
摘要:
概述 1.字典介绍 2.字典实现 3.字典API 字典介绍 Redis里面很多地方用到了字典,比如Redis数据库就是使用字典作为底层实现的,哈希键的底层实现也是使用的字典。Redis字典底层使用的哈希表来实现,每个哈希表节点就保存了一个键值对。hash表的原理可以参考java里面的hashmap介 阅读全文
摘要:
概述 1.链表介绍 2.链表API 链表介绍 链表在Redis中的应用非常广泛,比如列表键list的底层实现就是使用的链表。除了列表键外,Redis的发布与订阅、慢查询、监视器等功能也用到了链表,Redis服务器本身还使用了链表来保存客户端连接状态,以后使用链表来构建客户端输出缓冲区。 链表在Red 阅读全文
摘要:
概述 1.SDS介绍 2.SDS API 3.SDS与C的比较 SDS介绍 在C语言中,用来表达字符串的方式通常有两种, char *buf1="redis"; char buf2[]="redis"; 方式1,通过一个char指针指向一个字符串字面量,起内容无法改变,即无法通过buf1[1]='c 阅读全文
摘要:
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用My 阅读全文
摘要:
MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系 阅读全文
摘要:
1.什么是存储过程?有哪些优缺点? 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。 由于存储过程在创建时即 阅读全文
|