使用Memcache设置MySQL 5.6失败,没有错误

使用Memcache设置MySQL 5.6失败,没有错误,mysql,memcached,mysql-5.6,Mysql,Memcached,Mysql 5.6,我正在尝试在启用memcached插件的情况下设置MySQL 5.6。我遵循了上的步骤和一些其他教程,这些教程是我在网上找到的。具体来说,根据,这应该非常容易设置和测试 我正在尝试使用telnet验证设置是否按预期工作。当我从telnet设置一个键的值时,我会得到存储的返回状态。我甚至可以立即从memcache中获取值。但是,当我登录到DB时,我看不到新行。我在日志中也没有看到任何错误。“show plugins”显示守护进程_memcached插件已启用 [已编辑] 事实上,事情并不是这样的。

我正在尝试在启用memcached插件的情况下设置MySQL 5.6。我遵循了上的步骤和一些其他教程,这些教程是我在网上找到的。具体来说,根据,这应该非常容易设置和测试

我正在尝试使用telnet验证设置是否按预期工作。当我从telnet设置一个键的值时,我会得到存储的返回状态。我甚至可以立即从memcache中获取值。但是,当我登录到DB时,我看不到新行。我在日志中也没有看到任何错误。“show plugins”显示守护进程_memcached插件已启用

[已编辑]

事实上,事情并不是这样的。我在demo_测试表中添加了一个新行,并尝试通过memcache接口获取它。那也没用


任何关于如何识别错误的指针?

MySQL中的memcache集成直接与InnoDB存储引擎通信,而不是与更高的MySQL“服务器层”通信。因此,通过此接口对表数据的更改不会使对已存储在查询缓存中的表的查询无效。这与通过SQL接口进行的正常操作不同,在SQL接口中,对表数据的任何更改都将立即从查询缓存中删除针对该表的查询所保留的任何和所有结果,而不考虑对表数据的更改是否实际使每个受影响的特定查询无效

重复您的查询,但不要使用
选择
,而是使用
选择SQL\u NO\u缓存
。如果你得到了你期望的结果,这就是解释


一旦确定这是原因,您会发现对表执行插入、删除或更新的任何SQL查询也会使memcache更改的数据对
SELECT
查询可见,而无需添加
SQL\u NO\u CACHE
指令,即使insert、delete或update不会直接影响相关行,只要它修改了相关表中的某些内容,这一点仍然成立。

Duh!!端口11211上已运行memcached实例。不幸的是,mysql在这种情况下不会出错。当我使用telnet连接到端口11211时,我正在访问现有的memcached实例。它正在存储/检索它看到的值,但没有与MySQL通信


我停止了现有的memcached实例并重新启动了mysql。我现在可以连接到端口11211。使用telnet,当我执行“get”时,我从db返回值。另外,当我从telnet设置新值时,它们会反映在数据库中(并且可以使用SQL检索)。

感谢您的建议。然而,这并没有解决问题。我尝试了另一个测试,其中我使用SQL向表中添加了一行,并尝试从memcache中获取该值。那也没用。我用这些信息编辑了上面的主要问题。