草庐IT

把数据库放入Docker是一个好主意吗?

对于无状态的应用服务而言,容器是一个相当完美的开发运维解决方案。然而对于带持久状态的服务——数据库来说,事情就没有那么简单了。生产环境的数据库是否应当放入容器中,仍然是一个充满争议的问题。站在开发者的角度上,我非常喜欢Docker,并相信容器也许是未来软件开发部署运维的标准方式。但站在DBA的立场上,我认为就目前而言,将生产环境数据库放入Docker/K8S中仍然是一个馊主意。Docker解决什么问题?让我们先来看一看Docker对自己的描述。图片图片Docker用于形容自己的词汇包括:轻量,标准化,可移植,节约成本,提高效率,自动,集成,高效运维。这些说法并没有问题,Docker在整体意义上

android - 为什么在 Activity 中注册 IabBroadcastReceiver 是个坏主意?

在Google的应用内计费TrivialDrive示例中,在成功完成IabHelper设置后,注册了一个BroadcastReceiver以监听有关更新购买的消息。然而,作者包含了以下注释:Note:registeringthislistenerinanActivityisabadidea,butisdoneherebecausethisisaSAMPLE.为什么这对这个听众来说是个坏主意?此注释可以在MainActivity的onCreate方法中的OnIabSetupFinishedListener定义中找到。在sourcecodefortheTrivialDrivesample

android - contentDescription ="@null"是个坏主意吗?

Lint提示设置了一个contentDescription。因此,为了避免创建字符串,我将其设置为null。android:contentDescription="@null"这似乎平息了lint的提示。我有点迷惑为什么我需要设置对contentDescription的字符串引用。这样做的目的是什么?为什么我需要这个?并将其设置为null,这是个好主意吗? 最佳答案 我知道不久前有人问过这个问题,但为了可能遇到这个问题的新读者的利益:Brian关于contentDescription的用途完全正确。但是,有时将其设置为@null不仅

c++ - 使用指针作为循环增量器而不是通常的 "int i"是个坏主意吗?

这方面的一个例子是:charstr[]="Hello";intstrLength=strlen(str);for(char*pc=str;pc编辑:解决了写保护内存问题。 最佳答案 我的一个问题是,如果您在for循环中省略*in*pc,您将获得很多乐趣。哎呀?更一般地说,要区分重新分配指针和修改值之间的区别稍微有点困难。但是,(虽然我手边没有),Stroustroup本人在C++编程语言一书中赞同(参见编辑)指针迭代。基本上,您可以使用指针算法在两个char数组之间实现非常简洁的字符串比较。简而言之,我建议以“只读”方式使用此类指针

c++ - 包装 STL 习惯用法以提高可读性是个好主意吗?

我目前正在开发一个需要尽可能少的外部依赖项的C++项目,因此我几乎坚持使用STL和Boost。直到现在,当涉及到C++时,我几乎一直生活在Qt领域。一般来说,我倾向于尽可能使用C#和Python。今天我想检查std::vector是否包含某个项目。使用Qt,我会这样做:QListlist;list.append(1);list.append(2);list.append(3);if(list.contains(2)){//dosomething}美观易读。但是std::vector没有contains方法,这是一个惊喜。好吧……类似的东西在STL中的用法是什么?找了一圈,好像是这样的:

node.js - 使用 OrientDB 内存数据库作为 session 处理程序而不是 REDIS 是个好主意吗

我正在考虑使用OrientDB作为我的node.js应用程序的session存储解决方案。Redis和OrientDB是否有任何基准? 最佳答案 首先,键值是最简单的索引/关联数据形式之一,它可能是最快的。图形数据库也很快,但通常不考虑它们的速度,而是考虑它们管理复杂关系的能力。他们恰好在设计上很快,因为这就是他们设计的目的。但是,尝试在传统RDBMS中执行与通常在图形数据库中执行的操作相同的操作,您可能会在合理的时间内扩展和执行这些操作时遇到困难。真正归结为哪种技术最适合手头的工作。如果您正在存储session数据,那么我看不出您

redis - psubscribe with '*' 模式是个坏主意?

我正在尝试使用redis和node.js设置一些pubsub东西,我想知道psubscribe到*是否是个坏主意模式(所有channel),然后在该消息处理程序中自行处理“channel路由”。首先,我关心的是性能和容量方面的可扩展性。我想我可以猜到,如果我有越来越多的不同目的的channel,这可能很难管理。除非我为它构建了一个非常好的框架/抽象。我想我的问题已经很清楚了。此外,如果有旨在解决此问题的现有框架,我很想在评论中听到它们。 最佳答案 我认为这样做是个坏主意,除非您想实现Redispubsub不支持的功能,例如使用正则表

mysql - 结合 MySQL、Sphinx 和 MongoDB。好主意?

对于一个新项目,我希望结合使用MySQL、Sphinx和MongoDB。MySQL用于关系数据和数值搜索,Sphinx用于自由文本搜索,MongoDB用于地理数据。就我的(快速)基准测试而言,MongoDB是地理查询最快的,sphinx是自由文本搜索最快的,而MySQL是关系数据搜索最快的。因此,为了获得最佳性能,我可能必须将它们组合到我的项目中。然而,这有三个缺点。三个故障点,即Sphinx、MySQL和MongoDB可能崩溃这将停止我的网站我需要三个数据库中的数据并且需要使它们保持最新(所有数据每天只更改一个,所以这不是最糟糕的问题)。硬件要求,主要是RAM正在飞速发展因为所有数据

mongodb - 将数亿小图像存储到键/值存储或其他 nosql 数据库是个好主意吗?

我正在开发一个网络系统来处理一组非常大的小图像,大约1亿张50kb~200kb的图像,在ReiserFS上工作。目前,备份和同步那些大量的小文件非常困难。我的问题是,如果将这些小图像存储到键/值存储或其他nosql数据库(例如GridFS(Mongodb)、TokyoTyrant)是个好主意,Voldemort以获得更高的性能并带来更好的备份支持? 最佳答案 首先,看看这个:Storingamillonimagesinthefilesystem.虽然它与备份无关,但值得就手头的主题进行讨论。是的,大量的小文件很烦人;它们占用inod

mongodb - 为什么多值字段在关系数据库中不是一个好主意

一直在使用Mongodb和Solr/Lucene,我开始怀疑为什么关系数据库的多值字段(通常)被认为是一个坏主意?我知道关系数据库的理论基础和normalization.然而,在实践中,我遇到了很多用例,在这些用例中我最终使用键值对的元表来补充主表,例如在标记的情况下,我希望不必进行多次连接查找数据。或者要求突然从必须支持单个作者变为每篇文章支持多个作者。那么,多值字段有哪些缺点,或者供应商选择不支持它是因为它不是SQL标准的一部分? 最佳答案 主要缺点是查询偏差。此类数据库往往在设计时考虑到一种特定类型的查询,而当需要编写其他查询