Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Leveldb与Redis、Riak或东京暴君相比如何?

Leveldb与Redis、Riak或东京暴君相比如何?
EN

Stack Overflow用户
提问于 2011-05-23 18:38:33
回答 3查看 28.2K关注 0票数 48

Leveldb似乎是来自谷歌的一个新的有趣的持久键值存储。Leveldb与Redis、Riak或东京暴君有什么不同?在哪些特定用例中,一种比另一种更好?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-24 06:24:50

我发现我有点不同意colum的标准,尽管leveldb和Redis之间的差异是显而易见的。

你需要并发吗?我会选瑞迪斯。我这么说是因为Redis已经编写了处理它的代码。任何时候我都可以使用别人写得很好的代码来处理并发,那就更好了。我不是简单地说多线程应用程序,而是在其中包含多进程的概念-无论它们是否在同一系统上。即使这样,在我看来,不需要在多线程应用程序中编写和调试锁定也是一个很大的优势。

你想让它在应用程序中完全独立吗?使用leveldb,因为它是一个库。是否需要或想要的不仅仅是k/v?和Redis一起去。

我只是在评论leveldb或Redis方面,因为我认为自己在Riak或TT方面还不够流利,无法评论他们更好的西装。

简而言之,如果你正在寻找的是在单线程应用中持久化的键值存储,那么leveldb是你列表中的一个选择(另一个选择是东京机柜或者good ole,BerkleyDB,甚至是sqlite)。但如果你想要更多,那就选择其他的吧。

编辑:更新说明wrt。并发性

票数 31
EN

Stack Overflow用户

发布于 2011-11-07 14:52:48

我之所以添加这一点,是因为在前面的两个答案中,我没有看到这个(重要的)区别……

  • Redis:是一个数据库服务器。您可以通过自定义的二进制协议(通过客户端库typically).
  • LevelDB:实现键值存储)与其通信。您可以通过调用C++ API directly.

与其进行通信

如果你熟悉SQLite,以及它作为客户端应用程序的嵌入式DB的流行程度(我相信Android和iOS都提供了它),那么你就会看到像LevelDB这样的东西适合在哪里。

想象一下,你正在编写一个复杂的PIM应用程序,也许某个企业地址簿管理器打算安装在办公室的个人计算机上。您不希望将自己在应用程序中编写/解析的所有数据都存储在XML或JSON中--如果可以,您更愿意将其存储在DB中,以获得更容易的访问模式。

但你也不希望不得不发布和安装Redis的本地副本,在某个随机端口上运行,这样你就可以连接到它了……你想要一个可以直接从你的应用程序本地调用的数据库,而不用担心“通过网络”的通信……你想要一个数据库的原始内脏,而不是任何你在客户端应用程序中不需要的网络相关的东西。

这就是LevelDB所处的位置。

对于不同的工作,它是一个不同的工具。

票数 48
EN

Stack Overflow用户

发布于 2011-05-23 22:28:33

差异:

  • Redis是一个服务器,而Leveldb是“一个实现快速持久键值存储的库”。因此,使用Redis时,您必须轮询服务器。使用Leveldb,数据库存储在磁盘上,这使得它比Redis慢得多,Redis存储在memory.
  • Leveldb中,只提供密钥/存储。Redis也有这个功能,但也有更多的功能和特性

相似性:

  • 它们都有的密钥/存储方法

选择一个而不是另一个的理由

如果你正在开发一个C/C++应用,如果你只需要一个不像mysql那样占用大量资源的数据库,那么leveldb就是不错的选择。Leveldb提供代码级访问,而对于redis,您需要一个必须与服务器通信的接口。在任何其他应用程序中,Redis都是不错的选择。你不仅可以得到一个实际的服务器,一个以上的应用程序可以访问,你还可以获得其他功能,如写到磁盘,集,列表,散列,等等。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6101402

复制
相关文章
既生 Redis 何生 LevelDB ?
了解 Redis 的同学都知道它是一个纯内存的数据库,凭借优秀的并发和易用性打下了互联网项的半壁江山。Redis 之所以高性能是因为它的纯内存访问特性,而这也成了它致命的弱点 —— 内存的成本太高。所以在绝大多数场合,它比较适合用来做缓存,长期不被访问的冷数据被淘汰掉,只有热的数据缓存在内存中,这样就不会浪费太多昂贵的内存空间。
老钱
2019/01/02
1.6K0
Redis相比memcached有哪些优势?
(1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型
友儿
2022/09/09
7650
Redis 相比 Memcached 有哪些优势?
Redis和Memcached都是常见的内存数据库,被广泛应用于缓存和高速数据存储方面。虽然它们之间有很多相似之处,但是也存在许多不同点。下面将分别从以下几个方面探讨Redis相对于Memcached的优势。
用户1289394
2023/08/22
1930
Redis 相比 Memcached 有哪些优势?
2020东京奥运会,或出现AI体操裁判
来源:the Guardian 编译:Cecilia 【新智元导读】国际体操联合会(FIG)计划引进人工智能技术来助力2020年东京奥运会评分系统。 日本IT巨头富士通(Fujitsu)正在研发3D感官系统。富士通表示,该产品将使打分更容易,协助教练和运动员进行训练。 黑匣子上的灯光闪烁,提醒体操运动员开始表演。 她纵身跳下,落地,转身向机器人法官致敬。 得分已在大屏幕上闪烁。 这不是电影《银翼杀手2049》里的场景,而是未来体操可能的场景。未来的体操比赛将人工智能纳入其评分系统。 2020东京奥运会或将引
新智元
2018/03/21
5970
Riak - 背景篇(1)
典型的现代关系数据库在某些类型的应用程序中表现平平,难以满足如今的互联网应用程序的性能和可扩展性要求。因此,需要采用不同的方法。在过去几年中,一种新的数据存储类型变得非常流行,通常称为 NoSQL,因为它可以直接解决关系数据库的一些缺陷。Riak 就是这类数据存储类型中的一种。 Riak 并不是惟一的一种 NoSQL 数据存储。另外两种较流行的数据存储是 MongoDB 和 Cassandra。尽管在许多方面十分相似,但是它们之间也存在明显的不同。例如,Riak 是一种分布式系统,而 MongoDB 是一种单独的系统数据库,也就是说,Riak 没有主节点的概念,因此在处理故障方面有更好的弹性。尽管 Cassandra 同样是基于 Amazon 的 Dynamo 描述,但是它在组织数据方面摒弃了向量时钟和相容散列等特性。Riak 的数据模型更加灵活。在 Riak 中,在第一次访问 bucket 时会动态创建这些 bucket;Cassandra 的数据模型是在 XML 文件中定义的,因此在修改它们过后需要重启整个集群。 Riak 是用 Erlang 编写的。而 MongoDB 和 Cassandra 是用通用语言(分别为 C++和 Java)编写,因此 Erlang 从一开始就支持分布式、容错应用程序,所以更加适用于开发 NoSQL 数据存储等应用程序,这些应用程序与使用 Erlang 编写的应用程序有一些共同的特征。 Riak支持Map/Reduce 作业,但是Map/Reduce 作业只能使用 Erlang 或 JavaScript 编写。
干货满满张哈希
2021/04/12
2.4K0
Riak - 背景篇(1)
LevelDB
无论是 put 、 delete 还是batch操作,leveldb 底层都是以 batch 作为执行实例。
itliusir
2020/12/28
1K0
LevelDB
Riak - 背景篇(3)
分布式高可用键值对数据库Riak - 背景篇(3) Dynamo对于数据版本的处理 数据版本问题不止存在于分布式系统,这里针对分布式数据库系统简单讨论下。先看一个简单的例子,用户x对key1做了一次写入操作,我们设值是数字3。然后用户y读取了key1,这个时候用户y知道的值是3。然后用户x对值做了一个+1操作,将新值写入,现在key1的值是4了。而用户y也做了一次+1操作,然后写入,因为用户y读到的值是3,y不知道这个值现在已经变化了,结果按照语义本应该是5的值,现在还是4。 解决这个问题常用的方法是设
干货满满张哈希
2021/04/12
5350
Riak - 背景篇(3)
Riak - 背景篇(2)
因为我们用的PC机器性能不一,质量参差不齐,可能每天都会有机器挂掉或者重启。我们需要保证在某个机器挂掉或者损坏时,保证工作的正常运行。 我们可能最先想到的就是,给每个节点机器加一台备用的节点。这样,在主节点宕机时,备节点就可以顶上去。但是仔细想一下,这个方案是让人不放心的。因为当一主一备中的某一台机器坏掉,另外一台就成了一个单点运行的节点。这个时候另外一个节点一旦发生错误,服务就变得不可用,数据也有可能丢失。在一个要求高可靠性的系统上,这是不可忍受的。 那么,这样,我们就再加一个呗,一主两备。或者说,我们做个集群,集群内有多台,动态选主。但是这么做,无疑增加了成本。而且如果架构设计的不好,宕机重启的工作很麻烦,而且故障排查,也很麻烦。 我们可以抛弃主备的思想,运用无主集群。而且,尽量不添加额外的备用机器。那么,我们可以考虑在现有的机器上多备份几份。一般工业界认为比较安全的备份数应该是3份。好,那么我们看看做这个备份的时候需要注意的问题。
干货满满张哈希
2021/04/12
3600
Riak - 背景篇(2)
LevelDB Put如何写入数据
LevelDB Put如何写入数据 leveldb插入数据步骤 用户输入的kv数据首先组装为wal log entry写入到wal log中 然后将kv数据从内存中的wal log entry解析为memtable中的数据 最后在插入到memtable中,完成此次数据的put操作 写入流程分析 DB::Put分析 Status DB::Put(const WriteOptions& opt, const Slice& key, const Slice& value) { WriteBatch batch
用户4700054
2022/08/17
7230
与传统相比,混合云如何实现更便利的部署
内容来源:2017 年 12 月 22 日,Infortrend 大中华区总经理杨文仁在“2017IDC产业大会”进行《混合云应用与数据中心》演讲分享。IT 大咖说(微信id:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。
IT大咖说
2018/10/23
1.4K0
与传统相比,混合云如何实现更便利的部署
Riak - 使用篇(1)
请先参考Riak - 安装运维篇(1)安装部署并启动Riak集群(3个Node)。 Riak默认有两种端口,一种是protobuf端口,还有一种是HTTP Restful端口。 以前的Riak client java API会支持两种端口。最新的Riak client Java API作了很多改造,比如说利用netty4作为网络通信框架,简化了API代码,并且只支持Protobuf端口。理由如下:
干货满满张哈希
2021/04/12
9100
Riak - 使用篇(1)
HBase Cassandra Riak HyperTable
Cassandra                                                              HBase 一致性 Quorum NRW策略 通过Gossip协议同步Merkle Tree,维护集群节点间的数据一致性 单节点,无复制,强一致性 可用性 1,基于Consistent Hash相邻节点复制数据,数据存在于多个节点,无单点故障。 2,某节点宕机,hash到该节点的新数据自动路由到下一节点做 h
架构师刀哥
2018/03/20
1.3K0
HBase Cassandra  Riak  HyperTable
相比Hadoop,如何看待Spark技术?
之前看Spark的评价,几乎一致表示,Spark是小数据集上处理复杂迭代的交互系统,并不擅长大数据集,也没有稳定性。但是最近的风评已经变 化,尤其是14年10月他们完成了Peta sort的实验,这标
我是攻城师
2018/05/11
6380
LevelDB:Compaction
LevelDB 的写操作是 Append-Only 的,新的数据写入后,相应的旧数据就过期了。过期的数据需要被 Garbage Collection,不然数据文件的体积会持续膨胀,这是不可接受的。
linjinhe
2018/06/06
1.7K0
PostgreSQL 与 MySQL 相比,优势何在?
一、 PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景——mysql系统库是MyISAM的,相比之下,PG数据库这方面要好一些。 二、任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而 MySQL 明显出现一个波峰后下滑(5.5版本之后,在企业级版本中有个插件可以改善很多,不过需要付费)。 三、PG 多年来在
张善友
2018/01/19
3.8K0
Riak - 安装运维篇(1)
我的操作系统是Red Hat Enterprise Linux Server release 6.6 (Santiago),这也是我们目前生产上用的。 我直接在root下安装,先切换到root用户。 首先,安装下需要的软件,Riak官网给的不全:
干货满满张哈希
2021/04/12
9260
python leveldb
leveldb 是google实现的一种非常高效的key-value数据库。key-value数据库中,redis是比较知名且好用的,但它是一个内存数据库,而leveldb只需要少量的内存,但速度依然很快,美中不足的是,没有网络服务封装,这样一来就只能单机使用,如果你实力足够强,也可以自己封装一个。
py3study
2020/01/07
4K0
mongodb与mysql相比的优缺点
与关系型数据库相比,MongoDB的优点: ①弱一致性(最终一致),更能保证用户的访问速度: 举例来说,在 传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值。这在某些情况下,例如通过ATM查看账户信息的 时候很重要,但对于Wordnik来说,数据是不断更新和增长的,这种“精确”的保证几乎没有任何意义,反而会产生很大的延迟。他们需要的是一个“大约” 的数字以及更快的处理速度。 但某些情况下MongoDB会锁住数据库。如果此时正有数百个请求,则它们会堆积
wangxl
2018/03/08
15.9K0
相比Hadoop,如何看待Spark技术?
之前看Spark的评价,几乎一致表示,Spark是小数据集上处理复杂迭代的交互系统,并不擅长大数据集,也没有稳定性。但是最近的风评已经变化,尤其是14年10月他们完成了Peta sort的实验,这标志着Spark越来越接近替代Hadoop MapReduce了。 Sort和Shuffle是MapReduce上最核心的操作之一,比如上千个Mapper之后,按照Key将数据集分发到对应的Reducer上,要走一个复杂的过程,要平衡各种因素。Spark能处理Peta sort的话,本质上已经没有什么能阻止它处理
腾讯大数据
2018/01/26
5740
点击加载更多

相似问题

东京内阁与暴君教程

29

Sphinx +东京暴君+ mysql

21

东京暴君事务支持

14

LevelDB上的Riak

20

为什么东京暴君行动如此缓慢

25
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文