"PHP Memcached 키 앞부분 일치하는 항목만 뽑기"의 두 판 사이의 차이

12번째 줄: 12번째 줄:
$mc->addServer('127.0.0.1',11211);
$mc->addServer('127.0.0.1',11211);


#$keys = array_filter( $mc->getAllKeys(),
# function($key) { return preg_match('/^cachetest/', $key); } );
$prefix = 'cachetest';
$keys = array_filter( $mc->getAllKeys(),
$keys = array_filter( $mc->getAllKeys(),
function($key) { return preg_match('/^cachetest/', $key); } );
function($key) use ($prefix) { return preg_match("/^$prefix/", $key); } );
 
print_r( $keys );


print_r( $keys );
print_r( $keys );

2017년 5월 21일 (일) 02:55 판

1 개요

PHP Memcached 키 앞부분 일치하는 항목만 뽑기
  • Memcached 자체적으로는 그러한 기능을 제공하지 않음
참고로 Redis는 그런 기능이 있음
따라서 아래 예시는 효율적이지 않음
사용시 성능 저하에 주의 필요
  • PHP Memcached 사용하기에서 입력한 항목을 추출함
  • getAllKeys()로 모든 키를 가져와서 PHP 수준에서 추출함
$mc = new Memcached;
$mc->addServer('127.0.0.1',11211);

#$keys = array_filter( $mc->getAllKeys(),
#	function($key) { return preg_match('/^cachetest/', $key); } );
$prefix = 'cachetest';
$keys = array_filter( $mc->getAllKeys(),
	function($key) use ($prefix) { return preg_match("/^$prefix/", $key); } );

print_r( $keys );

print_r( $keys );
# (
#     [0] => cachetest3
#     [1] => cachetest2
#     [2] => cachetest1
#     [3] => cachetest0
#     [4] => cachetest5
#     [5] => cachetest4
# )

print_r( $mc->getMulti( $keys ) );
# Array
# (
#     [cachetest3] => 1
#     [cachetest2] => a string
#     [cachetest1] => 4542.32
#     [cachetest0] => 123
#     [cachetest5] => stdClass Object
#         (
#             [key1] => value1
#         )
# 
#     [cachetest4] => Array
#         (
#             [0] => 123
#             [1] => string
#         )
# )

2 같이 보기

3 참고 자료

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}