摘要:前面我们花了很多的时间介绍了 redis 中基本的数据结构,及其内部的实现情况,这些都是非常基础的东西,可能不经意间你就会用到他们,希望你花点时间了解一下。 接下来,我们将走近 redis 数据库,学习各种操作 redis 的命令,并介绍它的一些实现策略以及集群配置等等内容。 一、redis 中的数 阅读全文
posted @ 2019-12-11 17:26 Single_Yam 阅读 (193) 评论 (0) 编辑
摘要:目前为止,我们介绍了 redis 中非常典型的五种数据结构,从 SDS 到 压缩列表,这都是 redis 最底层、最常用的数据结构,相信你也掌握的不错。 但 redis 实际存储键值对的时候,是基于对象这个基本单位的,并且往往一个对象下面对对应不同的底层数据结构实现以便于在不同的场景下切换底层实现提 阅读全文
posted @ 2019-11-28 21:42 Single_Yam 阅读 (255) 评论 (1) 编辑
摘要:上一篇我们介绍了 redis 中的整数集合这种数据结构的实现,也谈到了,引入这种数据结构的一个很大的原因就是,在某些仅有少量整数元素的集合场景,通过整数集合既可以达到字典的效率,也能使用远少于字典的内存达到同样的效果。 我们本篇介绍的压缩列表,相信你从他的名字里应该也能看出来,又是一个为了节约内存而 阅读全文
posted @ 2019-11-13 20:09 Single_Yam 阅读 (190) 评论 (0) 编辑
摘要:当一个集合中只包含整数,并且元素的个数不是很多的话,redis 会用整数集合作为底层存储,它的一个优点就是可以节省很多内存,虽然字典结构的效率很高,但是它的实现结构相对复杂并且会分配较多的内存空间。 而我们的整数集合(intset)可以做到使用较少的内存空间却达到和字典一样效率的实现,但也是前提的, 阅读全文
posted @ 2019-10-20 20:31 Single_Yam 阅读 (203) 评论 (0) 编辑
摘要:我们都知道单链表有一个致命的弱点,查找任一节点都至少 O(n) 的时间复杂度,它需要遍历一遍整个链表,那么有没有办法提升链表的搜索效率? 跳跃表(SkipList)这种数据结构使用空间换时间的策略,通过给链表建立多层索引来加快搜索效率,我们先介绍跳跃表的基本理论,再来看看 redis 中的实现情况。 阅读全文
posted @ 2019-10-12 20:44 Single_Yam 阅读 (197) 评论 (2) 编辑
摘要:字典相对于数组,链表来说,是一种较高层次的数据结构,像我们的汉语字典一样,可以通过拼音或偏旁唯一确定一个汉字,在程序里我们管每一个映射关系叫做一个键值对,很多个键值对放在一起就构成了我们的字典结构。 有很多高级的字典结构实现,例如我们 Java 中的 HashMap 底层实现,根据键的 Hash 值 阅读全文
posted @ 2019-09-22 16:07 Single_Yam 阅读 (227) 评论 (0) 编辑
摘要:Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。可能几乎所有的线上项目都会使用到 Redis,无论你是做缓存、或是用作消息中间件,用起来很简单方便,但可能大多数人并没有去深入底层的看看 Redis 的一些策略实现等等细节。 正好最近也在项目开发中 阅读全文
posted @ 2019-09-15 11:16 Single_Yam 阅读 (264) 评论 (0) 编辑
摘要:前面的几篇文章中,我们大体上介绍了 SQL 中基本的创建、查询语句,甚至也学习了相对复杂的连接查询和子查询,这些基本功相信你也一定掌握的不错,那么本篇则着重介绍几个技巧方面的关键字,能够让你更快更有效率的写出一些 SQL。 起别名 在实际的项目中,有时候我们的表名、字段名过于复杂以致于我们的 SQL 阅读全文
posted @ 2019-03-05 09:14 Single_Yam 阅读 (795) 评论 (3) 编辑
摘要:上一篇文章中,我们介绍了 SQL 中最基本的 DML 语法,包括 insert 的插入数据、update 的更新数据、delete 的删除数据以及基本的查询语法,但大多比较简单不能解决我们日常项目中复杂的需求。 那么,本篇就来看一看较为复杂繁琐的查询语法,例如多表的连接查询、嵌套的子查询以及很多预定 阅读全文
posted @ 2019-02-26 09:24 Single_Yam 阅读 (586) 评论 (2) 编辑
摘要:上篇文章,我们介绍了数据的基本 DDL 语句,你应当具备基本的创建数据库、数据表的 SQL 语句,以及表字段的基本数据类型的熟知。 那么本篇就来总结总结大家日常最频繁接触到的 DDM 语句,也就是基本的增删改查 SQL。 数据的修改 众所周知的是,我们的项目中,有百分之八十的操作都是在查询,而仅有百 阅读全文
posted @ 2019-02-22 09:36 Single_Yam 阅读 (1017) 评论 (0) 编辑