上一页 1 2 3 4 5 6 7 8 9 ··· 17 下一页
摘要: Redis服务器负责与多个客户端建立网络连接,处理客户端发送的命令请求,在数据库中保存相关的数据,使用自身的资源管理来完成服务器的运行。 如果客户端发送了一个 set key value的命令。服务器的流程: 在Redis中目前提到最多的时间事件的内容就是:ServerCron。由于服务器中有不少需 阅读全文
posted @ 2020-12-21 16:03 smartcat994 阅读(68) 评论(0) 推荐(0) 编辑
摘要: Redis服务器是一个一对多模式的服务器程序,一个服务端可以和多个客户端建立网络连接。每个客户端可以向服务端发送命令请求。 通过上一节说到的多路复用器,文件事件处理器。让Redis可以实现一个单线程单进程的方式来处理请求(多路复用 >1个文件事件分发器 >N个处理器)。 对于每个建立连接的Redis 阅读全文
posted @ 2020-12-21 15:13 smartcat994 阅读(127) 评论(0) 推荐(0) 编辑
摘要: Redis服务器是一个事件驱动程序,服务器需要处理两类事件,一种是文件事件,例如client发来的请求,或者其他redis服务器发来的请求。一种是时间事件,例如之前提到的RDB的检测事件(ServerCron),会自发的进行,到某个时间节点了就会进行。 文件事件是基于Redis自己开发的网络事件处理 阅读全文
posted @ 2020-12-18 15:42 smartcat994 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 上个文章说到了RDB的持久化的过程以及RDB的文件是如何进行保存的。 和RDB不同的是,AOF的操作是通过把指令一个个保存入文件的,进行载入的时候就是一个个的command进行读取,也就是模拟了一遍某时间段内的所有的操作。 由于Redis服务器进程就是一个事件循环,这个循环中的文件事件负责接受客户端 阅读全文
posted @ 2020-12-17 16:27 smartcat994 阅读(88) 评论(0) 推荐(0) 编辑
摘要: Redis是一个键值对的服务器,默认16个数据库,每一个数据库都是基于内存的,一旦关机就会数据丢失,为了保证数据可以存在,这边使用了持久化技术RDB和AOF,先讲的是RDB。 RDB可以手动执行也可以根据配置周期性执行,RDB生成的文件是一个二进制的文件而且是经过压缩的。Redis服务器有RDB读取 阅读全文
posted @ 2020-12-17 16:13 smartcat994 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 24章今天一定要弄到10章! Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组中的每个项都是一个redis.h/redisDb结构,每个redisDb都表示着一个数据库: 在redisServer使用一个数组来保存数据库。 在初始化的时候 阅读全文
posted @ 2020-12-17 15:13 smartcat994 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 回忆下已经写过的数据结构:SDS,双向链表,整数数组,跳跃列表,压缩列表。 在Redis里面并没有直接使用这些,毕竟这些东西只是一个个的思想还是缺少了对业务上的定制化。例如缓存的生命。所以基于这些redis实现了一个对象系统,通过判断对象是属于which one来check 是否可以执行给定的命令。 阅读全文
posted @ 2020-12-17 14:05 smartcat994 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 压缩列表是列表键和哈希键的底层实现之一,当一个列表键只包含少量的列表项,而且每个列表项都是小整数值或者长度比较小的字符串。那么就会使用压缩列表来进行列表键的底层实现。很明显在C的天下里面,int都要分位数,开发的人肯定是个极致思想的老铁。变态的压缩思想都来了,很多时候我们也在尽可能的去调整代码的深度 阅读全文
posted @ 2020-12-17 10:28 smartcat994 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 整数集合是集合键的底层实现之一,当一个集合只包含整数元素,并且这个集合的元素不多的时候就会选择使用整数集合来存储。 整数数组的结构相对简单一点,只有三个成员变量,encoding编码方式,length表示数组中的元素长度,contents[]用来存放整数数组。要注意的是因为是整数了所以在放入的时候是 阅读全文
posted @ 2020-12-16 16:29 smartcat994 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 跳跃表是一个有序的数据结构,跳跃是通过在当前节点存储多个其他节点的指针,来达到跳跃的目的。它支持平均O(LogN)、最差O(N)复杂度的节点查找,还可以通过顺序性来批量处理节点。在大部分情况下,跳跃表的效率和平衡树是一样的,但是逻辑上比平衡树更加简单。 Redis通过跳跃表实现有序集合键的底层实现之 阅读全文
posted @ 2020-12-16 14:53 smartcat994 阅读(120) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 17 下一页