本节概述了
daemon_memcached
插件的优点。InnoDB
表和memcached的组合
提供了优于单独使用它们的优势。
直接访问
InnoDB
存储引擎,避免了SQL的解析和规划开销。在与 MySQL 服务器相同的进程空间中运行memcached避免了来回传递请求的网络开销。
使用memcached协议写入的数据是透明写入
InnoDB
表的,不经过 MySQL SQL 层。您可以控制写入频率,以在更新非关键数据时实现更高的原始性能。通过memcached协议 请求的数据 是透明地从
InnoDB
表中查询的,无需通过 MySQL SQL 层。对相同数据的后续请求由
InnoDB
缓冲池提供。缓冲池处理内存缓存。InnoDB
您可以使用配置选项 调整数据密集型操作的性能。数据可以是非结构化的或结构化的,具体取决于应用程序的类型。您可以为数据创建新表,或使用现有表。
InnoDB
可以处理将多个列值组合和分解为单个 memcached项值,从而减少应用程序中所需的字符串解析和连接量。例如,您可以将字符串值存储2|4|6|8
在memcached 缓存中,并InnoDB
根据分隔符拆分该值,然后将结果存储在四个数字列中。内存和磁盘之间的传输是自动处理的,简化了应用程序逻辑。
数据存储在 MySQL 数据库中,以防止崩溃、中断和损坏。
您可以通过 SQL 访问底层
InnoDB
表,以进行报告、分析、即席查询、批量加载、多步事务计算、并集和交集等集合操作,以及其他适合 SQL 的表现力和灵活性的操作。daemon_memcached
您可以通过将源服务器上的插件与 MySQL 复制结合 使用来确保高可用性 。
memcached与 MySQL 的集成提供了一种使内存中数据持久化的方法,因此您可以将其用于更重要的数据类型。您可以在应用程序中使用 more
add
、incr
和类似的写入操作,而不必担心数据可能会丢失。您可以停止和启动 memcached服务器而不会丢失对缓存数据所做的更新。为防止意外中断,您可以利用InnoDB
崩溃恢复、复制和备份功能。InnoDB
快速 主键查找 的方式非常适合memcached单项查询。插件使用的直接、低级数据库访问路径daemon_memcached
对于键值查找比等效的 SQL 查询更有效。memcached 的序列化功能可以将复杂的数据结构、二进制文件甚至代码块转换为可存储的字符串,提供了一种将此类对象放入数据库的简单方法。
因为可以通过 SQL 访问底层数据,所以可以生成报告,跨多个键搜索或更新,以及调用memcached数据上的
AVG()
和MAX()
等函数。使用memcached本身, 所有这些操作都非常昂贵或复杂 。您不需要在启动时手动将数据加载到 memcached中。当应用程序请求特定键时,会自动从数据库中检索值,并使用
InnoDB
缓冲池将其缓存在内存中。因为memcached消耗的 CPU 相对较少,而且它的内存占用很容易控制,所以它可以在同一系统上与 MySQL 实例一起舒适地运行。
因为数据一致性是由用于常规
InnoDB
表的机制强制执行的,所以您不必担心过时的memcached数据或在缺少键的情况下查询数据库的回退逻辑。