>  기사  >  백엔드 개발  >  YII 프레임워크에서 Memcache를 사용하는 방법에 대한 설명

YII 프레임워크에서 Memcache를 사용하는 방법에 대한 설명

巴扎黑
巴扎黑원래의
2017-08-15 13:17:401567검색

이 글은 주로 YII 프레임워크에서 Memcache를 사용하는 방법을 소개하고, Yii 프레임워크에서 Memcache를 사용할 때의 구성, 사용법, 주의사항을 예시 형태로 분석합니다. 도움이 필요한 친구들은 참고할 수 있습니다

본 글의 예시는 YII 프레임워크 방법에서 Memcache의 사용을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

yii에서 Memcache를 매우 편리하게 사용할 수 있습니다.

1. 구성

main.php 구성 요소에 캐시 구성 추가


array(
  'components'=>array(
    'cache'=>array(
      'class'=>'CMemCache',
      'servers'=>array(
        array(
          'host'=>'server1',
          'port'=>11211,
          'weight'=>60,
        ),
        array(
          'host'=>'server2',
          'port'=>11211,
          'weight'=>40,
        ),
      ),
    ),
  ),
)

지침:

1) 클래스는 모든 캐시 클래스를 지정하고 CMemCache는 memcache입니다.
2) 여러 캐시 폴링을 사용하는 경우 각 캐시에 가중치를 할당할 수 있습니다. 캐시가 하나만 있는 경우 이 구성을 추가하지 않고도 수행할 수 있습니다.

2.

을 사용하여 Memcache를 호출하는 방법도 매우 간단합니다.


$key = 'people';
$value = json_encode(array('name'=>'ball', 'age'=>'male'));
$expire = 10;
yii::app()->cache->set($key, $value, $expire);
Yii::app()->cache->get($key);
Yii::app()->cache->delete($key);

더 많은 API에 대해서는 yii 매뉴얼의 CMemCache 섹션을 참조하세요.

3. 문제

yii 확장 프로그램을 일률적으로 사용하여 memcache에 액세스하면 문제가 없습니다. 그러나 실제로는 Yii를 사용하여 백엔드를 개발하고 있는데 프런트 데스크의 친구들은 Yii를 사용하지 않고 기본 Memcache API를 사용하여 데이터를 운영하는 상황이 있을 것입니다. 이때 몇 가지 문제에 직면하게 됩니다.

위 두 번째 부분의 예시처럼 네이티브 Memcache API인 Memcache::get을 사용하고 people을 키로 사용하면 값을 얻을 수 없다는 것을 알 수 있습니다!

그 이유는 Yii의 집합이 키와 값을 모두 처리하기 때문입니다. 기본적으로 키에는 접두사가 붙고 md5가 변환되며 값은 serialized()입니다. Memcache::get('people')을 사용하여 값을 얻을 수 없다는 것은 놀라운 일이 아닙니다.

해결책:

Yii의 Memcache 확장 프로그램이 추가적인 "작은 작업"을 수행하지 않도록 간단한 방법을 구성할 수 있습니다.


'cache' => array(
  'class' => 'system.caching.CMemCache',
  'servers' => array( array('host' => '127.0.0.1', 'port' => 11211)),
  'keyPrefix' => '',
  'hashKey' => false,
  'serializer' => false)

그 중:

keyPrefix: 기본적으로 CApplication::getId() 메서드에 의해 생성되는 키의 접두사입니다.
hashKey: 키에 대한 해시 작업, 기본 md5
serializer: 값의 직렬화 방법, 기본 직렬화

이 항목을 비워두면 확장 동작이 기본 Memcache와 일치합니다.

4. 추가 memcache 메소드 호출

yii의 확장에는 가장 일반적인 memcache 작업만 있으며 기본 memcache의 감소 및 증가와 같은 작업은 없습니다. 이러한 방법을 사용하고 싶다면 어떻게 해야 할까요? 확장 프로그램의 getMemCache 메서드를 사용하여 기본 Memcache 개체를 얻은 다음 기본 메서드를 사용할 수 있습니다.


$mem = Yii::app()->cache->getMemCache();
$res = $mem->decrement($key);

네이티브 방식을 사용할 때는 위의 (3)에서 언급한 구성을 설정하는 것이 가장 좋습니다. 그렇지 않으면 yii의 확장 방식과 Memcache의 네이티브 방식을 동시에 사용하면 문제가 발생할 수 있습니다.

위 내용은 YII 프레임워크에서 Memcache를 사용하는 방법에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.