我正在尝试在 memcached 中存储数组。并且会有新的数据需要附加到我之前存储的数组中。
这是代码示例:
$lastDay = $MC->get('LastDayTopics');
$lastDay[] = $newTopic;
$MC->set('LastDayTopics', $lastDay );
如果两个客户端同时执行此代码怎么办? 在我的场景中,它们都从 memcached 获取数组,并在另一个客户端设置新数组之前加载 $lastDay。所以最终,其中一项新数据将不会存储在memcached中。它将被销毁而不会被存储。
有什么办法可以解决这个问题吗?
最佳答案
您必须使用额外的锁定,例如:http://bluxte.net/musings/2009/10/28/simple-distributed-lock-memcached
您还可以使用另一个支持原子更新/推送的数据库(如 redis 或 mongodb)来解决此问题。
关于php - 将新数据插入 memcached 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11361537/