摘要: Redis是个内存数据库一旦服务器进程退出,服务器中的数据库状态就会丢失。为了解决这个问题Redis提供了RDB持久化和AOF持久化。 1.RDB持久化 RDB持久化可以将某个时间点上的数据库状态保存到磁盘文件。RDB持久化既可以手动执行,也可以根据服务器配置定期执行。 1.1 RDB文件的创建与载 阅读全文
posted @ 2021-02-28 23:13 wenlongliu 阅读(140) 评论(0) 推荐(0) 编辑
摘要: Redis服务器将所有数据库都保存在redis.h/redisServer的结构中 struct redisServer { //一个数组保存着服务器中所有数据库 redisDb *db; //服务器中的数据库数量 int dbnum; //.............. }; 数据库键空间 Redi 阅读全文
posted @ 2021-02-28 21:51 wenlongliu 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 1.Redis 对象系统 Redis用到的所有主要数据结构,简单动态字符串(SDS)、双端链表、字典、压缩列表、整数集合、跳跃表。 Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种 阅读全文
posted @ 2021-02-28 17:42 wenlongliu 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 跳跃表(skiplist) 跳跃表是一种有序数据结构。跳跃表支持平均O(logN),最坏O(N)复杂度的节点查找,大部分情况下,跳跃表的效率可以和平衡树相媲美,并且因为跳跃表的实现比平衡树简单,所有不少程序都用跳跃表代替平衡树。Redis使用跳跃表作为有序集合的底层实现,另一个是在集群节点中用作内部 阅读全文
posted @ 2021-02-28 17:40 wenlongliu 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 1. SDS:简单动态字符串(simple dynamic string) Redis没有直接使用C语言的字符串,而是自己构建了一种名为简单动态字符串类型,并将SDS用作Redis的默认字符串。 SDS的定义 struct sdshdr { // buf 中已占用空间的长度 int len; // 阅读全文
posted @ 2021-02-27 20:53 wenlongliu 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 配置信息的发布 配置信息发布请求URL: POST: /v1/cs/configs nacos在STANDALONE模式或集群模式没有指定用mysql情况下使用derby数据库,在集群模式且指定mysql情况下使用mysql 持续化到数据库后立马同步集群中的其他节点 /** * 增加或更新非聚合数据 阅读全文
posted @ 2020-11-26 19:39 wenlongliu 阅读(639) 评论(0) 推荐(0) 编辑
摘要: nacos提供com.alibaba.nacos.api.config.ConfigService作为客户端的API用于发布,订阅,获取配置信息; ConfigService获取配置信息流程: 优先使用本地配置 --> 从nacos服务器获取配置 --> 本地快照文件获取配置 本地文件获取路径: $ 阅读全文
posted @ 2020-11-23 20:54 wenlongliu 阅读(2154) 评论(1) 推荐(0) 编辑
摘要: Raft是持久化,数据存储在\nacos\data\naming\data目录 nacos启动后首先从数据存储目录加载数据 Raft协议中节点只有一个LEADER,只有LEADER节点负责数据写入,FOLLOWER节点接受到写入请求后转发给LEADER节点处理 Raft协议中LEADER节点接受写入 阅读全文
posted @ 2020-11-15 18:39 wenlongliu 阅读(1297) 评论(0) 推荐(0) 编辑
摘要: 一致性协议算法Distro阿里自己的创的算法吧,网上能找到的资料很少。Distro用于处理ephemeral类型数据 Distro协议算法看代码大体流程是: nacos启动首先从其他远程节点同步全部数据 nacos每个节点是平等的都可以处理写入请求,同时把新数据同步到其他节点 每个节点只负责部分数据 阅读全文
posted @ 2020-11-10 21:57 wenlongliu 阅读(1343) 评论(0) 推荐(0) 编辑
摘要: 服务注册 1.1 NamingService.registerInstance的方法为客户端提供的服务注册接口 1.2 客户端通过调用NamingService.registerService上报到nacos节点 1.3 客户端通过BeatReactor.addBeatInfo定时上报心跳信息到na 阅读全文
posted @ 2020-11-09 20:25 wenlongliu 阅读(872) 评论(0) 推荐(0) 编辑