首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请澄清MySQL5.6 memcache集成

请澄清MySQL5.6 memcache集成
EN

Stack Overflow用户
提问于 2012-10-07 16:18:22
回答 2查看 881关注 0票数 3

我在理解MySQL 5.6引入的w/r/t内存缓存时遇到了困难。

据我所知,memcache本身本质上是一个巨大的、共享的、内存驻留的哈希表,由服务器memcached管理。特别是,它不了解持久数据存储,也不提供这方面的服务。它只知道键、(就像Perl哈希)。

我认为mySQL 5.6引入的是NoSQL API,mySQL客户端可以通过键而不是SELECT语句从mySQL服务器请求数据。(类似地,它们可以使用key=value对执行更新)。MySQL使用memcached在内存中缓存这些内容,以提高性能,但也会处理一些事情,比如在更新退出缓存之前将更新写回数据库,等等。

换句话说,memcached的使用是mySQL 5.6 NoSQL特性的实现细节,应用程序程序员不需要知道这一点。

我欢迎对我的理解进行任何修改或放大。

谢谢你,小伙子

EN

回答 2

Stack Overflow用户

发布于 2013-01-26 00:27:12

我认为这很简单(从官方文档来看):

我不同意最后一句,应用程序程序员必须真正了解memcache插件,因为将它放在MySQL服务器上意味着他可以决定(也许他会被迫)通过memcached语言接口或SQL接口访问数据。

要更好地理解这个插件对应用程序设计的影响,您应该知道MySQL使用了3个配置表来进行适当的memcached管理;了解"cache_policies“的工作原理会给您的一些疑虑蒙上阴影:

表cache_policies指定是使用InnoDB作为memcached (innodb_only)的数据存储,还是使用传统的memcached引擎作为后端存储(仅缓存),还是同时使用两者(缓存)。在最后一种情况下,如果memcached无法在内存中找到键,它将搜索InnoDB表中的值。

下面是链接:innodb memcached-内部件

以上引用意味着,根据您对特定键值的决定,您将有不同的应用程序场景:

  1. innodb_only ->意味着您可以通过sql接口或memcached接口查询数据,下面是一些memcached语言接口示例memcached-接口的链接
代码语言:javascript
复制
1. cache-only -> means that you should query the data via the memchached interface only
2. caching -> means that you can use both the interfaces (note that the storage mechanism slightly changes) 

当然,后一种配置决策严格地与您的特定需求相关。

票数 2
EN

Stack Overflow用户

发布于 2012-10-09 00:55:40

我真的没有一个完整的答案,我担心,因为我也在努力找到我需要的细节,然后再玩它。

尽管如此,我还是发现了一个重要的问题,您似乎忽略了这一点,即通过新插件访问InnoDB存储引擎,您实际上完全绕过了SQL,并避免了它带来的所有开销。

当然,这使得它本质上是一个键/值存储,更类似于大多数NoSQL数据库,并且有着与它们相关的所有缺点。比如不加入等等..。

然而,对于现在的许多应用程序来说,这正是我们想要的。在现实世界中,我只提到过很少的几个性能方面的例子,但似乎都指出,这种实现的性能明显优于MongoDB和其他类似的NoSQL解决方案(我不知道其中有多少真相),甚至有一个(相对深入的)比较,声称在一个商品服务器上的qps高达700 000 qps(而在调得很好的MySQL设置中只有大约100 K),如果是这样的话,这是难以置信的。

这里的资源:

http://yoshinorimatsunobu.blogspot.co.uk/search/label/handlersocket

不管怎么说,对不起,我不能再帮你了,至少这是我思考的食物!

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

https://stackoverflow.com/questions/12770547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档