4. 稳定的性能基于内存的NoSQL数据库(例如Redis和Memcached)的设计目标是:在毫秒延迟内,每秒钟能够处理超过10万个请求。但是,这个数字在云环境下是很难达到的,除非你遵循以下的原则:
|
5. 网速大多数云主机都配置了一块万兆(1Gbps)网卡。在基于内存的NoSQL数据库中,该万兆网卡需要完成以下操作:
这很容易成为运行的瓶颈,因此,这里提供一些解决该问题的建议:
|
6. 可扩展性对于简单的KV(key/value)缓存(例如 Memcached或者Redis的简单应用),扩展很少被认为是一个很严重的问题;因为在大多数情况下,这只需要在在服务器列表中增加或删除节点并修改 哈希方法。但是,实际经历过该问题的人就会意识到这是一个非常令人痛苦的问题。对于该话题我们有一些建议:
|
另一方面,很多人声称新一代的超高性能RAM能够解决节点扩展中遇到的大多
数问题。但现实与他们的声称有所不同,在25GB-30GB数据规模上,对于像Redis一样的内存数据库,还有一些其他方面的问题会阻止扩展的真正实
施。这些问题与本文前面提到的挑战密切相关,像复制、I/O、每核一个线程的架构、网络开销等。
|
7. 巨大的运维开销基于内存的NoSQL数据库的运维会产生巨大的额外开销。它需要对这些技术进行深入了解,以便在紧要关头做出正确决策。同时,因为这些技术变化频率很快(可能是非常快),你还要时刻关注这些系统的趋势和最新修改。 |
正如我们上面所说的一样,为了更好的利用Redis、 Memcached等开源技术带给我们的优势,我们需要对这些技术进行深入了解和掌握。对于企业的IT团队来说,为了能够在企业环境中使用基于内存的 NoSQL数据库,了解如何更好的应对这些挑战就显得更为重要。不是我持有偏见,我强烈建议寻找一些能够克服可扩展性和高可用性限制而不损害功能和性能的 商业解决方案;因为运行维护基于内存的NoSQL数据库需要该领域的高级专家,这是非常稀少的。
在市场上有一些关于Redis和Memcached的 NoSQL服务(NoSQL-as-a-service);我建议你对每一个可用的服务进行深入的比对(就像DIY),以便挑选一个最好的解决方案。能够 实际体验一下这些服务就更好了,很多服务商为这个目的都提供了免费体验。
英文原文:How to Make Your In-memory NoSQL Datastores Enterprise-Ready