我将在我的PHP应用程序中使用memcache(而不是memcacheD)。我很少有困惑。
我为memcache找到了this wrapper类。
1)在连接方法上,它添加了要拉的所有服务器。如果在每一个请求上都这样做,它会不会减慢网络延迟的持久性原因?
2)如果池中有2台服务器且一台服务器处于脱机状态,那么仍然会向离线服务器发出请求?没有其他方法可以自动从memcache中删除脱机服务器?如果没有memcache.allow_failover = 1设置怎么办?
3)有没有办法查看哪个缓存请求由哪个memcache服务器提供服务?
答案 0 :(得分:2)
任何memcache API /包装都可以。您甚至可以通过PHP的CURL方法构建自己的方法。
没有。当您的应用程序发出请求时,它会尝试连接到单个服务器,并在发生故障时“go-fish”到下一个服务器,NOT_FOUND,timeout,& tc。可能存在一些网络延迟,但 lot 少于与数据库交互。如果您担心I / O&延迟,你应该能够在你的应用程序中构建一个简单的解决方案。
由你决定。虽然系统已关闭,但您的应用程序可能仍在尝试连接到它。如果您决定使用PECL的memcache API,您的应用程序应该能够识别memcached是否在任何给定服务器上正常运行。 Memcache::checkServerStatus
这正是它所说的。如果您有memcached服务器 A , B 和 D 。服务器 A 会停止运行。这两个选项都会发出USER_NOTICE; 然而,memcache.allow_failover=1
将继续服务器 B ,并允许读写。当memcache.allow_failover=0
所有内存缓存I / O将返回false 正常时。
结帐docs。
Memcached提供stats
命令,PECL的memcache也提供status方法。但是它们与内存/平板统计有关。如果您想要使用监控报告,请查看New Relic