C++自制Redis数据库(二)部分设计前置问题
来源:互联网 发布:网络协议栈是什么 编辑:程序博客网 时间:2024/06/11 22:09
单机设计前置问题
1.各种数据结构如何设计,以适应所有功能。
2.服务器如何保存数据库。
3。服务器如何保存具体的数据,多少在内存。
4.如何对待依靠时间戳来判定数据的可靠性。
5.接着是如何应用时间来清除老的键值对。
6.如何设计内存管理模块
7.过期的键如何删除
8.日志如何处理会更高效
9.AOF RDB持久化如何实现
10.如何从文件中恢复数据到内存
11.事务极多的情况下,是否需要队列
12. 文件事件与事件事件的调度
13.网络编程设计,消息的数据结构,分包发送消息
14.服务器接受到消息后,如何读取命令然后做哪些预备工作开始执行命令
简单多机设计前置问题
1.设计存储系统的时候需要考虑如何通过读取持久化介质中的数据来恢复内存信息,从而恢复到宕机前的某个一致性状态。包括从core dump 中恢复信息。
2.进程重启后从core dump 文件中恢复内存信息。
3.网络永远是不可靠的,只有接受到对方回复的信息才能确定消息发送成功。
4.系统设计的时候必须考虑网络出现异常并采取相应的处理措施
5.磁盘故障需要考虑多台服务器,当一个服务器磁盘故障后,我们需要从另一个服务器读取文件,恢复数据。
6.副本是多机存储系统容错的唯一手段。
7.设计之初就需要进行性能估计,不然会出现重大设计失误。
8.如何处理超时问题,服务器处理了请求但是客户端没有接受,如何处理
9.一致性问题如何解决。
10.如何衡量其性能。
11.数据如何均衡散列数据到多台服务器,保证大作业用户的效率。
12.如何实现简单负载均衡功能,心跳包是如何实现的。
13.复制数据的时候如何同步副本,必须数据备份好之后才能提供写完成操作。
14.强同步方式,与异步同步方式。
15.容错问题如何解决,故障检测(心跳,租约)
16.多个节点之间如何同步,迁移数据
查看原文:http://zmrlinux.com/2016/02/05/c%e8%87%aa%e5%88%b6redis%e6%95%b0%e6%8d%ae%e5%ba%93%ef%bc%88%e4%ba%8c%ef%bc%89%e9%83%a8%e5%88%86%e8%ae%be%e8%ae%a1%e5%89%8d%e7%bd%ae%e9%97%ae%e9%a2%98/
- C++自制Redis数据库(二)部分设计前置问题
- 《Redis设计与实现》[第二部分]单机数据库的实现-C源码阅读(二)
- c++自制Redis数据库(三)初步基础框架设计
- 《Redis设计与实现》[第一部分]数据结构与对象-C源码阅读(二)
- 《Redis设计与实现》[第二部分]单机数据库的实现-C源码阅读(一)
- 《Redis设计与实现》[第二部分]单机数据库的实现-C源码阅读(三)
- 《Redis设计与实现》[第二部分]单机数据库的实现-C源码阅读(四)
- C++自制Redis 数据库 (十五)【重构】数据库学习(二)
- C++自制Redis数据库(三)设计开始敲定各模块架构-简单集群设计
- C++自制Redis数据库(五) 设计开始 敲定各模块架构--数据库模块
- C++自制Redis数据库 (一)
- C++自制Redis数据库(四) 设计开始 敲定各模块架构--网络模块
- C++ 自制Redis 数据库(十一)哈希类与数据库类
- C++自制Redis数据库(七) 决战架构设计--从数据的角度贯通始终,表白我的心。
- C++自制Redis数据库(八)基本数据结构--String
- C++自制Redis 数据库(十)数据结构类
- c++自制Redis 数据库(十四)阶段性小结
- 自制 塔防游戏 和 设计模式(二)
- MySQL日志
- Codeblocks如何调试DLL
- Slidingmenu与ViewPager广告栏滑动冲突解决分享
- 迭代器模式
- 四大组件的工作过程
- C++自制Redis数据库(二)部分设计前置问题
- bbb rt2870
- pcm2076最好的外置声卡芯片
- 系统架构设计师考试说明(2015)
- 文件操作(File)
- IIyarrAdetroSmorfsetacilpuDevomeR.80
- codeforces AIM Tech Round
- TintedStatusBar实践总结
- zoj 1221 Risk【最短路 3种方法】