下列说法正确的是 为什么是 下列说法正确的是

实现键值对存储(一):什么是键值对存储,为什么要实现它 - 博客 - 伯乐在线
& 实现键值对存储(一):什么是键值对存储,为什么要实现它
& 2.6K 阅读
在本文中,我将会以键值对是什么的一个简短描述开始。然后我将解释本项目之后的一些理由,最后我将说明我打算实现的键值对存储的主要目标。这里是本文中将会包含内容的列表:
键值对存储的概述
键值对存储 vs 关系型数据库
为什么要实现键值对存储
1. 键值对存储的概述
基于很多文章已经有了很多详细的介绍,本节只是对于键值对存储的一个简短介绍。我已经选择了几篇放在本文底部的引用一节中。
键值对存储是数据库最简单的组织形式。基本上所有的编程语言都带有应用在内存中的键值对存储。C++STL的映射容器(map container)和Java的HashMap以及Python的字典类型都是键值对存储。键值对存储通常都有如下接口:
Get( key ): 获取之前存储于某标示符“key”之下的一些数据,或者“key”下没有数据时报错。
Set( key, value ): 将“value”存储到存储空间中某标示符“key”下,使得我们可以通过调用相同的“key”来访问它。如果“key”下已经有了一些数据,旧的数据将被替换。
Delete( key ):
删除存储在“key”下的数据。
大部分低层实现都是使用哈希表或者某种自平衡树(例如B-树或者红黑树)。有时候数据太大而不装不进内存,或者必须维持数据谨防系统因为未知原因而崩溃。在这些情况下,就必须使用到文件系统。
键值对存储是NoSQL运动的一部分,NoSQL将所有不使用基于关系型数据库概念的数据库系统组合在一起。很好的总结了这些数据库的特征。
不使用SQL查询语言
可不全面支持(原子性、一致性、隔离性、持久性)。
可提供分布式、容错强的结构
2. 键值对存储和关系型数据库
不像关系型数据库,键值对存储不需要了解值中的数据,也没有像MySQL或者PostgreSQL中那样的任何结构。这同时表示像SQL那样用WHERE语句或者通过任何形式的过滤来请求数据中的一部分是无法做到的。如果你不知道去哪找,你必须遍历所有的键,获取它们对应的值,应用某种你需要的过滤,然后保留你想要的东西。这将会需要大量的运算,也即表示只有当键已知的时候才能体现出最佳性能,否则键值对存储将无法胜任(注意:一些键值对存储能够存储结构化的数据并有字段索引)。
因此,即使键值对存储在访问速度上经常比关系型数据库系统性能要好数个数量级,但对键已知的需求也限制着其应用。
3. 为什么要实现键值对存储
我开始这个项目主要是作为充电的一种方式,学习和补充一些核心后端基本原理知识。读书和维基上的文章很无聊并且没有练习,因此我认为着手开始做并且实际写一写代码会更好。我要找的是一个可以让我复习如下内容的项目:
C++编程语言
面向对象设计
算法和数据结构
多进程或或多线程的并发管理
服务器/客户端模式的网络
磁盘访问的I/O问题和文件系统的使用
一个使用文件系统作为永久存储,且提供网络接口的键值对存储将会包含上面列出的全部范围的内容。这个项目刚好能够处理后端工程的各个领域。但是让我们面对现实。市面上已经有了大量的键值对存储,其中一些是由很聪明的人实现的,并且已经在大公司的生产环境使用了。这包括Redis, MongoDB, memcached, BerkeleyDB, Kyoto Cabinet 和LevelDB。
除此之外,近期出现了关于键值对存储的潮流。好像每人都有一个并且想给大家看自己的键值对存储系统有多么出色和快速。这个问题在中描述了。这些项目中大多数在那时还不成熟且不能应用于生产环境,但人们仍然想展示出来。在博客文章或会议幻灯片中经常可以看到对一些晦涩键值对存储系统性能的比较。这些图表基本上毫无意义,并且只是在自己的硬件上用自己的数据和应用进行的孤立测试,可以告诉你哪一种键值对存储最适用于解决你的问题。这里是性能所依赖的条件:
使用的文件系统
实际应用和具体哪些键会被访问()
数据集,特别是键和值的长度,以及使用哈希表的时候键碰撞的可能性。
因此,编写一个键值对存储系统并有一定的影响力是比较难的,因为其很有可能因为其它已存在的更好的键值对存储系统的存在而被忽视,或者被简单的淹没在半生不熟的业余项目中而没人关心。
为了差异性,这个项目不能像其他人做的那样为了速度,而必须瞄准于填补现有解决方案间的空隙。这里是我发现的能够让键值对项目脱颖而出的几个方法。
适应于某种特定数据类型(例如:图片,地理数据等)
适应于某种特定操作(例如读取性能特别好或者写入性能特别好等)
适应于某种特定问题 (例如:自动参数调节,很多键值对存储都有很多选项,而找到一个最好的参数设置有时候很棘手)
提供更多数据访问选项。以LevelDB为例,数据可以向前或者向后访问,有迭代器,是按照键排序的。并不是所有的键值对存储都能做到这样。
使自己的实现更平易近人:现在,很少有键值对存储系统有完全的代码。如果你需要快速搭建一个项目,而你必须为其自定义一个键值对存储。即便不是一个广为人知的项目,有代码的解决方案看起来确实平易近人并且会作为选项之一。实际上理解代码并相信这个解决方案会弥补这些不足。
明确应用。这儿有一个实际问题的例子:很多网络爬虫框架(网络蜘蛛)有一个粗劣的接口来管理他们需要爬的URL,这经常使得客户使用键值对存储来实现逻辑。所有的网络爬虫框架都能因一个统一的URL优化的键值对存储而受益。
项目的目标是用易于理解的C++代码开发一个轻量级键值对存储。事实上,我打算在本项目中遵从。我将会使用哈希表作为底层数据结构,数据将会存储在硬盘上,同时将会实现一个网络接口。我不会项目进度而匆忙完成,而是要在设计和实现时简洁和清晰。我同样会尽我能力最小化硬盘上数据库文件的空间占用。
我不想重新发明轮子,所以我会从查看别的C或者C++的键值对存储项目开始,然后从中选取比较出色的。我会逐渐学习他们的结构和代码,从中获取启示。后端工程是我的核心技能之一,我已经有了这个项目所需的大部分知识,但我知道我还要学很多新东西,这使其对我来说更加有意思。我同样乐于记录下其中的全部东西。以前我很喜欢逛核心技术博客,例如和,我也想贡献出一些有用的,尽可能好的东西。
我的研究结果和键值对存储的一些工作将在这个文章系列中记录。不要试图用文章的日期来推测键值对存储实现的时间:文章可能和实际研究或者做的事之间有相当大的延迟。
在第二部分,我将搜索顶级的键值对存储项目并解释为什么我选择了其中的部分作为参考,而不选另一些。其他的文章你可以参考本系列的。
你可以在下边的“引用”一节中找到一些文章和书籍章节来学习更多关于键值对存储的知识。在阅读第二节之前,我强烈建议至少读一下和 。
5. 参考文献
, from the book “Architecture of Open Source Applications, Volume 1″
, by Ricky Ho
, referencing all the NoSQL databases that matter at the moment
, by Ilya Katsov
, and the discussion on
, by Marc Seeger
, by Leonard Lin
关于作者:
为作者带来更多读者;为读者筛选优质内容;专注IT互联网。
最新评论(期待您也参与评论)
汇集优质的Python技术文章和资源。人生苦短,我用Python!
JavaScript, CSS, HTML5 这里有前端的技术干货!
关注安卓移动开发业界动态,分享技术文章和优秀工具资源。
关注iOS移动开发业界动态,分享技术文章和优秀工具资源。
为作者带来更多读者;为读者筛选优质内容;专注IT互联网。
由数百名译者组成,立志翻译传播优秀的外文技术干货。
一个专门为IT单身男女服务的征婚传播平台。
收录优秀的工具资源,覆盖开发、设计、产品和管理等。
关于伯乐在线博客
在这个信息爆炸的时代,人们已然被大量、快速并且简短的信息所包围。然而,我们相信:过多“快餐”式的阅读只会令人“虚胖”,缺乏实质的内涵。伯乐在线博客团队正试图以我们微薄的力量,把优秀的原创/译文分享给读者,做一个小而精的精选博客,为“快餐”添加一些“营养”元素。
欢迎关注更多频道
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选博客文章
– JavaScript, HTML5, CSS
– 专注Android技术分享
– 专注iOS技术分享
– 专注Java技术分享
– 专注Python技术分享
(加好友请注明来意)
网站使用问题
请在询问或者反馈
& 2015 伯乐在线
赞助云主机, 赞助云存储摘要:很多网友朋友们朋友的电脑都应该碰到过电脑无法关机的情况,实在是件很不爽的事情!别急,本专题告诉您为什么电脑无法关机解决方案。
关键词:电脑无法关机 电脑关机关不了 电脑无法正常关机 为什么电脑无法关机
&&& 很多网友朋友们朋友的电脑都应该碰到过的情况,实在是件很不爽的事情!别急,本专题告诉您为什么解决方案。
& 为什么、电脑无法正常关机?
&&& 1.大多数情况是病毒木马造成电脑不能正常关机的,比较典型的病毒是绑架类木马, 它是一种新型破坏性极强的木马,与传统病毒不同,它是通过绑架注册表实现开机启动,导致电脑关机按钮不见了。
&&& 2.Windows声音文件损坏导致无法关机。
&&& 3.CMOS设置不正确会引起电脑无法正常关机。
&&& 4.计算机上的&高级电源管理(APM)&功能也可引起关机或黑屏问题.
电脑关机关不了怎么办
&&& 一.电脑遭到木马病毒破坏,注册表信息被恶意更改。解决方案如下:&&&&&&&&&&&&&&&&&
&&& 第一步:进入主界面进入【查杀木马】&
&& 第二步& 安装后,点击&查杀木马&使用全盘扫描功能
&&&&&&&&&&&&&&&&&&&&& 二.用户误修改电脑关机配置文件导致的修复方法如下
&&& 1.开始&&&运行&,在&运行&对话框中输入&regedit&,点击&确定&找到以下内容:HKEY-LOCAL- MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies点击&system&文件夹, 然后双击右侧的&shutdownwithoutlogon&项。
&&&&&&&&&&&&&&&&&
&& 2.、&开始&&&运行&,在&运行&对话框中输入&gpedit.msc&,然后点击&确定&按钮。在&组策略&窗口中,双击&管理模板&&&任务 栏和「开始」菜单&,然后双击右侧的&删除和阻止访问&关机&命令&。在&删除和阻止访问&关机&命令属性&窗口中,点击&设置&选项卡,选择&已禁 用&,然后点击&确定&按钮。
&&& 三.首先你可确定&退出Windows&声音文件是否已毁坏&&打开&控制面板&,打开&声音&,将&退出Windows&声音取消。如果Windows正常关闭,则问题是由退出声音文件所引起的,要解决这一问题,可以从备份中恢复声音文件或者重新安装提供声音文件的程序,也可定义&退出Windows&为无声。
&&& 四.大家在电脑启动时可进入CMOS设置页面,重点检查CPU外频、电源管理、病毒检测、IRQ中断开闭、磁盘启动顺序等选项设置是否正确。具体设置方法你可参看你的主板说明书,其上面有很详细的设置说明,如果你对其设置实在是不了解,建议你直接恢复厂家出厂默认设置既可。
&&& 五.检查是不是&高级电源管理(APM)&功能也可引起关机死机或黑屏问题,可打开&设备管理器&,打开&系统设备&。在&高级电源管理&中取消&启用电源管理&选择。如果计算机正常关机,则问题的原因可能在于APM。
免费杀毒下载
系统文件下载
最新恶意网站
遇到问题不要慌,请联系我们:为什么是正确的_百度知道
为什么是正确的
//d.baidu://d.hiphotos.hiphotos:///zhidao/wh%3D600%2C800/sign=349bda39f6/2f738bd4b31cbbf0708ff77.baidu.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="/zhidao/pic/item/2f738bd4b31cbbf0708ff77.hiphotos.jpg" esrc="/zhidao/wh%3D450%2C600/sign=38fd3a6b1/2f738bd4b31cbbf0708ff77&<a href="http
我有更好的答案
其中有一条不知道你听没听过你知道票据的特点是哪些吗,票据是无因证券,票据上的权利与义务不以任何原因为其有效的条件
我为了幸运卡
我拿到了气泡
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁南雪祛痘霜正确用法是怎么样的
温馨提示: 现在有很多工作都要求相貌,在求职期间,,由于脸上的青春痘留下痘或疤痕而没有经过面试。还有的人婚恋情况也常受到它影响。那么,南雪祛痘霜正确用法是怎么样的?
阅读了本篇文章的用户还阅读了
据阅读为你提供的用药资讯
三七粉能祛斑吗?三七有活血、止血、补血的功效,有益于美容,下面小编教你巧用三七粉祛斑...
为何嘴巴周围会长痘?不同部位长痘更是有不同的原因。例如嘴巴周围长痘痘也是有其原因的...
阅读了本篇文章的用户购买了您的位置: >
白癜风怎么诊断才是正确的呢
来源: 新闻
  白癜风怎么诊断才是正确的呢?白癜风病人在平时是非常常见的,虽然非常多人白癜风病人都在进行康复医治,但是当下没有什么太好的医治办法能够有效地根治白癜风这种疾病,白癜风的医治好难度非常高,该病注重早发现早医治。其诊断方式相对较多,病人也比较容易自行诊断。那么,白癜风怎么诊断才是正确的呢?
  一、白癜风和其他皮肤疾病不一样的,当得了白癜风后,除了在皮肤上发现白斑之外,病人的皮肤不会有明显的自觉反应,一般是不痛不痒的。但是当皮损处受到阳光的照射以后,可能会发现发红的症状,也可能会少有一些疼痛的感觉,严重者还会发现水泡,白斑的面积也会逐渐的增大。
  二、白癜风怎么诊断才是正确的呢?白癜风的病发部位不固定,众所周知,白癜风能够发生于病人身体的任何部位,多以皮肤暴露的部位为主,但是前期一般发生在头部、脸部、躯干和四肢等部位,随后可想周围或身体其他部位扩散,白色斑块面积逐渐扩大,数目增多。
  三、白斑遍布全身,白斑多连成一片。诊断白癜风前期,病人身上的白斑常见的分布状态为,单个存在,到了白癜风晚期,白斑逐渐连成一片一片的,相邻的白斑融合在一起。白斑可遍布全身,白癜风症状主要为泛发性白癜风晚期症状。
  白癜风怎么诊断才是正确的呢?上述就是详细的介绍,大家应该多关注了解,这种疾病会干扰到外在美,非常多的病人都是不自信的,必然关注疾病的医治,避免其中的护理情况,关注符合身体需求的诊断。
[技术来源:新闻]

我要回帖

更多关于 以下说法正确的是 的文章

 

随机推荐