如何设计一个K-V存储系统
2013-11-27 10:48
393 查看
如何设计一个K-V存储系统?
自己设计的话,单机基本思路是用hash函数把key映射到数组,数组元素存放数据的索引,用链表来解决冲突。这样通过key到索引,再直接取出数据。数据存放的话,内存和文件都可以,内存可存放热点数据。效率提升的话,可以延迟写操作/批量处理的等方式来提升。
分布式设计的话,考虑partition和replication。
详细参考:
http://www.crazyshell.org/blog/?p=176 http://forchenyun.iteye.com/blog/744935
www.unclejoey.com/tag/key-value/ http://www.oschina.net/question/16840_45384
自己设计的话,单机基本思路是用hash函数把key映射到数组,数组元素存放数据的索引,用链表来解决冲突。这样通过key到索引,再直接取出数据。数据存放的话,内存和文件都可以,内存可存放热点数据。效率提升的话,可以延迟写操作/批量处理的等方式来提升。
分布式设计的话,考虑partition和replication。
详细参考:
http://www.crazyshell.org/blog/?p=176 http://forchenyun.iteye.com/blog/744935
www.unclejoey.com/tag/key-value/ http://www.oschina.net/question/16840_45384
相关文章推荐
- java学习心得 关于如何设计一个拼图游戏
- 如何设计一个 iOS 控件?(iOS 控件完全解析)
- 如何设计一个大型的AJAX应用程序
- 如何设计一个秒杀系统
- 如何设计一个好的J2EE开发框架
- 如何设计一个小而美的秒杀系统?
- 如何设计一个公共的数据字典维护模块
- 如何设计一个app
- 如何设计一个 iOS 控件?(iOS 控件完全解析)
- 如何设计一个 iOS 控件?(iOS 控件完全解析)
- 如何设计一个编辑窗体的基类
- Hybrid设计--如何落地一个Hybrid项目
- 你该如何做好一个数据中心的设计与实施 推荐
- 如何设计一个 iOS 控件?(iOS 控件完全解析)
- 如何设计一个大型的AJAX应用程序
- Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入。 那么,弹出软键盘后必然会造成原有布局高度的减少,那么系统应该如何来处理布局的减少
- 如何为 Go 设计一个通用的日志包
- 转载:如何设计一个可扩展的用户登录系统
- 如何设计一个大型的AJAX应用程序
- 如何设计一个秒杀系统