"memcached"를 사용하여 PHP 세션을 저장합니다. 요청이 동 기적으로 (트랜잭션 또는 작업이 중복되지 않도록) 필수적이지만 "memcached"세션을 사용하는 동안 "세션 잠금"이 작동하지 않는 것이 중요합니다.PHP Memcached 세션 잠금 활성화
은 하나의 요청이 실행될 때까지 "memcached"세션을 잠그는 몇 가지 방법입니까?
"memcached"를 사용하여 PHP 세션을 저장합니다. 요청이 동 기적으로 (트랜잭션 또는 작업이 중복되지 않도록) 필수적이지만 "memcached"세션을 사용하는 동안 "세션 잠금"이 작동하지 않는 것이 중요합니다.PHP Memcached 세션 잠금 활성화
은 하나의 요청이 실행될 때까지 "memcached"세션을 잠그는 몇 가지 방법입니까?
$(field_name)_is_locked = true
을 시작한 다음 시작했을 때 $(field_name)_is_locked = false
을 완료하고 변수를 업데이트 할 때 서버에 전달할 수 있습니다.
아무 것도 내장되어 있지 않지만 코드를 원자 단위로 만들 수 있습니다. 코드에서
$key = 'lockable_key_name';
$lockkey = $key.'##LOCK';
if($memcached->add($lockkey, '', 60)) {
$storedvalue = $memcached->get($key);
// do something with $storedvalue
$memcached->set($key, $newvalue);
// release
$memcached->delete($lockkey);
}
당신은 수행하여 잠금을 확인할 수 있습니다 :
if(!$memcached->get($lockkey)) {
// then do something
}
를 get 메소드가 false 다음에는 잠금 장치가 없습니다 반환하거나 조작이 걸려와에 지정된 60 초 시간 제한을 경과 한 경우 위의 add 호출.
당신이 신뢰할 수/공식 소스를 요구 되었기 때문에 : http://pecl.php.net/package-info.php?package=memcache&version=3.0.4
당신이 일어날 경우
는memcached를 확장은 PECL 확장 페이지에서 변경 로그 문서에 따라, 버전 3.0.4 이후 세션 잠금을 지원 이전 버전을 실행하십시오 (memcached 확장 버전이 4 년 이상 된 것을 의미합니다), 운이 없으므로 업그레이드해야합니다.
세션 핸들러가 php.ini에 설정되어 있습니다 : 'session.save_handler = memcache session.save_path = "tcp : //192.168.*.* : *"' PHP는 php_memcache.dll (Win Server 2008, PHP 5.3)을 사용합니다. PECL로 전환하는 것이 좋습니다. 덕분에 . – user492589
자세한 정보를 제공해 주시겠습니까? 내가 생각하는 너의 질문을 이해하지 못한다. – Sliq