摘要:
Redis集群是Redis提供的分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故障转移功能 #节点 一个Redis集群通常由多个节点Node组成,节点与节点之间通过握手(CLUSTER MEET)建立连接 127.0.0.1:7000>cluster meet 127.0.0.1:700 阅读全文
摘要:
#K8S介绍 ##概述 k8s是容器化集群管理系统,使用k8s可以让我们部署容器化应用更加简洁和高效。 ##特性 自动装箱:基于容器对应用运行环境的资源配置要求自动部署应用容器 自我修复(自愈能力): 当容器失败时,会对容器进行重启 当所部署的Node节点有问题时,会对容器进行重新部署和重新调度 当 阅读全文
摘要:
Sentinel(哨兵)是redis高可用的解决方案:由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进行下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。 对每个被监视的主服务器来说,Se 阅读全文
摘要:
在redis中用户可以通过slaveof命令 让一个服务器成为另一个服务器的从服务器 #旧版复制功能 旧版Redis复制功能分为两步:同步和命令传播 ##同步 1.从服务器向主服务器发送sync命令 2.主服务器收到sync命令执行BGSAVE命令,在后台生成一个RDB文件,并使用一个缓冲区记录从现 阅读全文
摘要:
Redis是基于内存的数据库,而内存是断电即失的,因此我们需要持久化功能。 而Redis的持久化有两种,一种是RDB,一种是AOF。RDB是基于数据的持久化,记录的是数据库中的数据。AOF是基于状态的持久化,记录的是修改数据库的操作。 需要注意的是如果服务器开启了AOF持久化,则会优先使用AOF持久 阅读全文
摘要:
这是2019年NSDI上一篇关于区块链分片的论文 作者是针对公链(比特币)做出的改进 #如何确定哪个账户在哪个分片 每个账户都有一个地址,地址是公钥的哈希,Monoxide中分片的数量是2^k,因此我们只需要看账户地址的前k位即可确认该账户在哪个分片中。 #跨片共识 片内共识作者采用的是POW,这里 阅读全文
摘要:
这个SIGMOD 2021上一篇关于区块链分片的论文。 本篇论文是针对有许可区块链(区别于公链,加入需要许可)的一个分片系统。 将整个系统根据有无恶意节点分为CTF网络(只存在崩溃节点数目f,不存在恶意节点)和BFT网络(存在恶意节点数目f) 其中在CFT网络中,节点数目为2f+1,在BFT网络中节 阅读全文
摘要:
#保存过期时间 redisDb结构(存储了数据库中所有的键值对)中有一个expires字典保存了数据库中所有键的过期时间。我们称这个字典为过期字典 过期字典的键是一个指针,这个指针指向键空间的某个键对象 过期字典的值是一个long long类型的整数,这个整数保存了键对象的过期时间--一个毫秒精度的 阅读全文
摘要:
读周志明老师《凤凰架构》有感。 #单体架构 单体建构就是我们常写的单机应用。单体架构最核心的特点在于 架构内所有的通信都发生在同一个进程内。 这也意味着,对于一些简单的应用,单体架构是最合适的,不需要发生进程间的通信,可以共享部分数据等等。 但随着应用的规模变大,代码越来越复杂,单体架构就不太适合。 阅读全文
摘要:
Redis系统里一共有五种对象,包括字符串对象,列表对象,哈希对象,集合对象和有序集合对象。 每种对象的实现都比较灵活,可以根据不同的使用场景自由选择之前讲过的合适的数据结构(整数,字符串,字典,双端列表,压缩列表,整数集合,跳跃表) #对象和类型和编码 Redis中每一个对象都是由一个redisO 阅读全文