redis
文章平均质量分 68
weixin_42828799
这个作者很懒,什么都没留下…
展开
-
分布式一致性,CAP理论,Ruft算法
分布式系统中,每个节点都要将自己收到的请求发送给其他节点,其他节点再执行相同的操作,从而保证数据的一致性.但是由于时钟不同步,网络不可靠,节点崩溃等因素会导致数据的不一致.例如,A向 C发送a=a*2,B向C发送a=a+1;当a=0时,若A指令先到达,a最终是1,当b指令先到达,a最终是2.分布式系统有一个著名的CAP理论.C-----consistency:一致性性,所有节点的数据保持一致A------avalability:可用性,系统是可用的P------partitiion tolerance:当由原创 2022-06-13 23:01:44 · 271 阅读 · 0 评论 -
Redis持久化与复制
Redis是内存型数据库,运行期间数据都保存在内存中.因此,一旦断电,redis的数据就将丢失.所以需要定时地将内存中的数据持久化到磁盘中.Redis支持的持久化方式有两种,一种是RDB快照,一种是AOF命令.redis中的serverCorn()负责定时生成RDB文件.这个函数的逻辑是需要注意的是,rdbSaveBackground()函数也是BGSAVE命令的执行函数,他会进行fork系统调用,创建一个子进程 来完成rdb操作.而主进程继续提供服务.检查父进程中是否存在已经结束的子进程是调用wait3(原创 2022-06-13 22:28:22 · 52 阅读 · 0 评论 -
Redis的启动,事件和epoll网络通信
redis中server.c中的main函数负责启动Redis服务。启动流程大致如下:下面是initServer函数的主要流程:Redis是一个事件驱动的程序,主要处理文件事件和时间事件。Redis事件机制实现的代码在ae.h,ae.c中,分为ae抽象层和I/O复用层上下两层,其中ae抽象层基于I/O服用层。由于I/O复用涉及操作系统内核,不同的操作系统提供了不同的API接口,Redis也针对不同的操作系统做了适配。最常见的是Linux操作系统的epoll。aeEventLoop是Redis中的事件循环器,原创 2022-06-12 17:47:08 · 114 阅读 · 0 评论