memcached有时会持有损坏的数据

时间:2013-10-08 23:46:32

标签: memcached amazon-elasticache

我一直在使用Memcached(AWS Elasticache)。

就在今天,我遇到了以前没有经历过的情况。通常会调用数据库以获取国家/地区列表,并将其存储在memcached中。然而这次数据没有正确存储(我不确定为什么它已经工作好几个月了)但是在查看了代码和&尝试基于代码的修复(假设站点代码出现问题)缓存的反弹修复了问题。注意:前一天我已经弹回了memcached,所以可能没有正确预热等等。

我的问题是 - 目前我检查memcached密钥是否存在以及是否存在我使用数据。仅当memcached密钥不存在时,我才查询数据库并填充密钥。我是否还需要以某种方式验证数据,以便我可以确定它没有损坏,或者这应该被视为一个不常见的问题(它是)并留在那里。

另外我相信memcached密钥中没有任何数据,所以可能只是检查密钥是否为空就足够了......

以下代码:

    public $countryList = array();


    // Countries, Country Code, Zip Enabled --- 'generic::countryList::'.$_SESSION['language']'
    public function countryList() {
    $elasticache = new elasticache();
        if(!$this->countryList = $elasticache->memcached->get('generic::countryList::'.$_SESSION['language'])) {

            --- this is where the database query code is

            $elasticache->memcached->set('generic::countryList::'.$_SESSION['language'], $this->countryList, 2592000);
        }
    }

我想确认密钥中的数据是否正确需要数据库调用,因此会破坏memcached的目的....

思想&想法?

0 个答案:

没有答案