//1、使用互斥锁
function get_redis_cache($ptid) {
$ptid_key = GG_LIST_KEY . "_" . $ptid;
$ptid_mutex = GG_KEY_MUTEX . "_" . $ptid;
$value_redis = "";
// $return = array();
if(class_exists('Redis')) {
$redis = new Redis();
$res = $redis->connect(REDIS_HOST,REDIS_PORT,REDIS_TIMEOUT);//两秒超时连接
}
if($res){
$auth = 1;
if(REDIS_AUTH){
$auth = $redis->auth(REDIS_AUTH); //设置密码
}
}
if($auth){
$value_redis = $redis->get($ptid_key);
if($value_redis == null){
//设置3min的超时,防止del操作失败的时候,下次缓存过期一直不能load db
if ($redis->set($ptid_mutex, 1, Array('nx', 'ex'=>60)) == 1) { //代表设置成功
$value_db = get_db_gg($ptid);
$value_redis = json_encode($value_db);
Redis 互斥锁
最新推荐文章于 2024-05-21 19:41:45 发布