14.21.2 InnoDB 内存缓存架构

InnoDB memcached 插件将 memcached 作为 MySQL 插件守护程序实现,可直接绕过 MySQL SQL 层直接访问InnoDB存储引擎。

下图说明了与 SQL 相比,应用程序如何通过daemon_memcached插件访问数据。

图 14.4 带有集成 memcached 服务器的 MySQL 服务器

daemon_memcached插件的功能:

InnoDB 内存缓存和传统内存缓存之间的区别

在 memcached 中使用 MySQL中所述,您可能已经熟悉在 MySQL 上使用 memcached 。本节介绍集成的InnoDB memcached 插件与传统memcached的功能之间的区别。

要与传统 memcached 进行比较,请参见Installing memcached

要与传统 memcached 进行比较,请参见memcached Deployment

要与传统 memcached 进行比较,请参见Data Expiry

@@符号仅适用于对getaddset函数的单独调用,而不适用于incrdelete之类的其他函数。要为会话中的后续 memcached 操作指定默认 table,请使用带有table_id@@table 示法执行get请求,但不包含键部分。例如:

get @@table_id

后续的getsetincrdelete和其他操作使用innodb_memcache.containers.name列中table_id指定的 table。

要与传统 memcached 进行比较,请参见Using Namespaces

如果按照分片配置在物理上划分数据,则可以在运行daemon_memcached插件的多台计算机之间拆分数据,并使用传统的“ memcached”哈希机制将请求路由到特定计算机。在 MySQL 方面,通常会通过addmemcached 的请求插入所有数据,以便将适当的值存储在适当服务器上的数据库中。

要与传统 memcached 进行比较,请参见memcached 散列/分发类型

如果将缓存策略切换为cachingcache_only,则适用“ memcached”内存使用的常规规则。 memcached 数据值的内存是根据“平板”分配的。您可以控制 slab 大小和用于 memcached 的最大内存。

无论哪种方式,您都可以使用熟悉的statistics系统(例如,通过 telnet 会话通过标准协议访问)来监控daemon_memcached插件并对其进行故障排除。 daemon_memcached插件未包含其他 Util。您可以使用memcached-tool script来安装完整的 memcached 发行版。

要与传统 memcached 进行比较,请参见memcached 中的内存分配

要与传统 memcached 进行比较,请参见memcached 线程支持

要与传统 memcached 进行比较,请参见memcached Logs

要与传统 memcached 进行比较,请参见基本的内存缓存操作

要与传统 memcached 进行比较,请参见使用 memcached 作为 MySQL 缓存层

要与传统 memcached 进行比较,请参见libmemcached 命令行 Util

要与传统 memcached 进行比较,请参见开发内存缓存的应用程序

See memcached FAQ.

首页