php – memcached中的重复键
发布时间:2020-12-13 22:33:39 所属栏目:PHP教程 来源:网络整理
导读:我的php网站上的memcache有些麻烦.偶尔我会得到一个报告,该网站是行为不端的,当我看到memcache时,我发现群集中的两个服务器上都存在一些密钥.两个条目之间的数据不同(一个是较旧的). 我对memcached的理解是,这不应该发生……客户端应该散列密钥,然后总是选择
我的php网站上的memcache有些麻烦.偶尔我会得到一个报告,该网站是行为不端的,当我看到memcache时,我发现群集中的两个服务器上都存在一些密钥.两个条目之间的数据不同(一个是较旧的).
我对memcached的理解是,这不应该发生……客户端应该散列密钥,然后总是选择相同的服务器.所以要么我的理解是错的,要么是我的代码.谁能解释为什么会发生这种情况? FWIW服务器托管在Amazon EC2上. 我通过这个函数打开了与memcache的所有连接: $mem_servers = array( array('ec2-000-000-000-20.compute-1.amazonaws.com',11211,50),array('ec2-000-000-000-21.compute-1.amazonaws.com',50) ); function ConnectMemcache() { global $mem_servers; if ($memcon == 0) { $memcon = new Memcache(); foreach($mem_servers as $server) $memcon->addServer($server[0],$server[1],true); } return($memcon); } 和值通过以下方式存储: function SetData($key,$data) { global $mem_global_key; if(MEMCACHE_ON_OFF) { $key = $mem_global_key.$key; $memcache = ConnectMemcache(); $memcache->set($key,$data); return true; } else { return false; } } 解决方法
我认为这篇博文涉及到你遇到的问题.
http://www.caiapps.com/duplicate-key-problem-in-memcache-php/ 从文章中可以看出发生以下情况: 听起来您可能需要使用Memcache :: flush在写入之前清除memcache集群,以帮助最大限度地减少集群中可能存在的重复项. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |