我正在尝试测试在 MySQL 服务器上使用 memcached 以提高性能的性能。
我希望能够使用普通的 MySQL 命令行,但我似乎无法让它连接到 memcached,即使我指定了正确的端口。
我在与 memcached 进程和 MySQL 服务器相同的机器上运行 MySQL 命令。
我在网上环顾四周,但除了程序 API 之外,我似乎找不到任何关于使用 memcached 的信息。有任何想法吗?
我正在尝试测试在 MySQL 服务器上使用 memcached 以提高性能的性能。
我希望能够使用普通的 MySQL 命令行,但我似乎无法让它连接到 memcached,即使我指定了正确的端口。
我在与 memcached 进程和 MySQL 服务器相同的机器上运行 MySQL 命令。
我在网上环顾四周,但除了程序 API 之外,我似乎找不到任何关于使用 memcached 的信息。有任何想法吗?
Memcached 有自己的协议。MySQL 客户端无法直接连接到 memcached 服务器。
你可能会想到 MySQL 5.6 的特性,它允许 MySQL 服务器使用与 memcached 兼容的协议来响应连接,并直接读取和写入 InnoDB 表。见http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached.html
但这不允许 MySQL 客户端连接到 memcached —— 恰恰相反,允许 memcached 客户端连接到 mysqld。
回复您的评论:
InnoDB memcached 接口本身并不是真正的缓存解决方案,它是一种使用熟悉的键/值 API 来处理 InnoDB 表中的持久数据的解决方案。InnoDB 确实在其缓冲池中对数据页进行透明缓存,但这与使用 SQL 读取的传统数据没有什么不同。InnoDB 还会在提交时同步提交对其事务日志的所有更改。
这是我在 Percona 的同事的博客。他测试了 MySQL 5.6 memcached API 是否可以用作缓存层,发现实际使用 memcached 还是优越的。
http://www.mysqlperformanceblog.com/2013/03/29/mysql-5-6-innodb-memcached-plugin-as-a-caching-layer/
这是该博客的一个结论:
正如预期的那样,使用 InnoDB 版本时写入操作会变慢。但平均提取时间也略有增加。