PHP Memcached 키 앞부분 일치하는 항목만 뽑기

Jmnote bot (토론 | 기여)님의 2020년 11월 2일 (월) 02:56 판 (봇: 자동으로 텍스트 교체 (-</source> +</syntaxhighlight>, -<source +<syntaxhighlight ))
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요[ | ]

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

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

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

print_r( $mcd->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 }}