我已经将memcached以传统方式与memcache php扩展一起运行,我的应用程序设置为在预期时缓存查询。
我现在正在运行MySQL 5.6,并希望测试新的innodb_memcached插件,以便对我数据库中的某些表进行快速NoSQL样式键值访问。
但是我对安装感到困惑:
基本上我只想提一些关于此安装的建议。我希望它是一个简单的卸载和替换,其他一切都像以前一样运行。
提前致谢
答案 0 :(得分:2)
一如既往,答案是“它取决于”。
您可以使用memcached插件作为现有标准memcached服务器的完全替代品。您只需要通过在innodb_memcache.containers
表中插入一行来告诉插件您要使用哪个表来存储缓存数据。在这种情况下,您可能会为缓存创建一个全新的表。在这种情况下,您的应用程序和现有数据库保持不变。好处是你现在拥有一个持久的memcached,其空间与你的数据库一样多(而不是受memcached服务器上RAM的限制)
但是,您还可以采用另一种方法,在该方法中,您只能通过Memcached协议访问实际的MySQL数据。在此方案中,您将从应用程序中完全删除SQL交互,并仅使用memcached客户端添加/删除/更新数据。显然,这可能适用于您的特定用例,也可能不适用,但如果您可以将其删除,那么它可以通过一次性缓存和永久存储简化您的应用程序。
要使用第二种方法,您需要再次配置innodb_memcache.containers
表以正确映射到目标表。您甚至可以通过相同的memcached接口公开多个表,只需在此表中添加更多行,并在键前添加@@identifier.
例如:@@users.1234
将使用users
容器(映射到表XYZ)并使用1234
作为缓存密钥)
答案 1 :(得分:0)
作为上一个答案的补充,请查看标准文档以了解逐步配置: http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached-setup.html
基本上你可以选择配置它的端口(innodb memcached插件) 它作为MySQL服务器的一部分运行(但memcached端口与标准MySQL端口不同)。
是的,可以选择作为标准memcached的替换,或者作为memcached本身的持久层(在这种情况下,需要进行额外的编程以保持主memcached)。