摘要:基于前面介绍的 Redis 内容,Redis 只能作为一个单机内存数据库,一旦服务器宕机即不能提供服务,即便能通过持久化策略重启恢复数据,往往也做不到百分之百还原。再一个就是,单机的 Redis 需要处理所有的客户端请求,包括读和写操作,压力很大。 说了这么多,Redis 当然也提供了解决方案,主从 阅读全文
posted @ 2020-03-29 21:25 Single_Yam 阅读 (190) 评论 (0) 编辑
摘要:上篇我们简单介绍了 redis 客户端的一些基本概念,包括其 client 数据结构中对应的相关字段的含义,本篇我们结合这些,来分析分析 redis 服务端程序是如何运行的。一条命令请求的完成,客户端服务端都经历了什么?服务端程序中定时函数 serverCron 都有哪些逻辑? 一、redis 客户 阅读全文
posted @ 2020-03-19 21:04 Single_Yam 阅读 (208) 评论 (0) 编辑
摘要:Redis 是一个客户端服务端的程序,服务端提供数据存储等等服务,客户端连接服务端并通过向服务端发送命令,读取或写入数据,简单来说,客户端就是某种工具,我们通过它与 Redis 服务端进行通讯并完成数据操作。 客户端并不是 Redis 的核心,Redis 的核心是它的服务端程序,服务端程序才是完成数 阅读全文
posted @ 2020-03-12 21:41 Single_Yam 阅读 (165) 评论 (0) 编辑
摘要:上一篇文章,我们讲的是 Redis 的一种基于内存快照的持久化存储策略 RDB,本质上他就是让 redis fork 出一个子进程遍历我们所有数据库中的字典,进行磁盘文件的写入。 但其实这种方式是有缺点的,先不说阻塞式 save 调用会阻塞整个 redis 服务,即便异步式 bgsave 也是基于时 阅读全文
posted @ 2020-02-04 16:36 Single_Yam 阅读 (188) 评论 (0) 编辑
摘要:Redis 是一个内存数据库,所有的数据都直接保存在内存中,那么,一旦 Redis 进程异常退出,或服务器本身异常宕机,我们存储在 Redis 中的数据就凭空消失,再也找不到了。 Redis 作为一个优秀的数据中间件,必定是拥有自己的持久化数据备份机制的,redis 中主要有两种持久化策略,用于将存 阅读全文
posted @ 2020-01-05 12:56 Single_Yam 阅读 (409) 评论 (0) 编辑
摘要:前面我们花了很多的时间介绍了 redis 中基本的数据结构,及其内部的实现情况,这些都是非常基础的东西,可能不经意间你就会用到他们,希望你花点时间了解一下。 接下来,我们将走近 redis 数据库,学习各种操作 redis 的命令,并介绍它的一些实现策略以及集群配置等等内容。 一、redis 中的数 阅读全文
posted @ 2019-12-11 17:26 Single_Yam 阅读 (330) 评论 (0) 编辑
摘要:目前为止,我们介绍了 redis 中非常典型的五种数据结构,从 SDS 到 压缩列表,这都是 redis 最底层、最常用的数据结构,相信你也掌握的不错。 但 redis 实际存储键值对的时候,是基于对象这个基本单位的,并且往往一个对象下面对对应不同的底层数据结构实现以便于在不同的场景下切换底层实现提 阅读全文
posted @ 2019-11-28 21:42 Single_Yam 阅读 (330) 评论 (1) 编辑
摘要:上一篇我们介绍了 redis 中的整数集合这种数据结构的实现,也谈到了,引入这种数据结构的一个很大的原因就是,在某些仅有少量整数元素的集合场景,通过整数集合既可以达到字典的效率,也能使用远少于字典的内存达到同样的效果。 我们本篇介绍的压缩列表,相信你从他的名字里应该也能看出来,又是一个为了节约内存而 阅读全文
posted @ 2019-11-13 20:09 Single_Yam 阅读 (279) 评论 (0) 编辑
摘要:当一个集合中只包含整数,并且元素的个数不是很多的话,redis 会用整数集合作为底层存储,它的一个优点就是可以节省很多内存,虽然字典结构的效率很高,但是它的实现结构相对复杂并且会分配较多的内存空间。 而我们的整数集合(intset)可以做到使用较少的内存空间却达到和字典一样效率的实现,但也是前提的, 阅读全文
posted @ 2019-10-20 20:31 Single_Yam 阅读 (278) 评论 (0) 编辑
摘要:我们都知道单链表有一个致命的弱点,查找任一节点都至少 O(n) 的时间复杂度,它需要遍历一遍整个链表,那么有没有办法提升链表的搜索效率? 跳跃表(SkipList)这种数据结构使用空间换时间的策略,通过给链表建立多层索引来加快搜索效率,我们先介绍跳跃表的基本理论,再来看看 redis 中的实现情况。 阅读全文
posted @ 2019-10-12 20:44 Single_Yam 阅读 (485) 评论 (2) 编辑