>  기사  >  백엔드 개발  >  Redis Cache를 사용하면 Cache Key 값은 Interval 값(처리 가능)입니다. Interval의 Interval 번호가 전달되면 해당 Cache를 어떻게 찾나요?

Redis Cache를 사용하면 Cache Key 값은 Interval 값(처리 가능)입니다. Interval의 Interval 번호가 전달되면 해당 Cache를 어떻게 찾나요?

WBOY
WBOY원래의
2016-12-01 01:27:461640검색

예:
이제 배열이 있습니다.
배열(

<code>  '10000_20000'=>'上海',
  '20001_30200'=>'北京',
  '30201_30300'=>'天津',
  '30301_40000'=>'深圳'</code>

)
이제 배열의 각 값을 Redis 캐시에 저장하려고 합니다. 캐시 키 값은 처리 후 배열 키 값이 될 수 있습니다. 이때 값 38000을 전달합니다. 캐시에서 키값이 38000인 캐시값을 찾았는데 좋은 방법이 없을까요

안내 좀 부탁드려요!

답글 내용:

예:
이제 배열이 있습니다.
배열(

<code>  '10000_20000'=>'上海',
  '20001_30200'=>'北京',
  '30201_30300'=>'天津',
  '30301_40000'=>'深圳'</code>

)
이제 배열의 각 값을 Redis 캐시에 저장하려고 합니다. 캐시 키 값은 처리 후 배열 키 값이 될 수 있습니다. 이때 값 38000을 전달합니다. 캐시에서 키값이 38000인 캐시값을 찾았는데 좋은 방법이 없을까요

안내 좀 부탁드려요!

//배열에 키는 많지만 값이 작은 경우 순서가 지정된 세트를 사용하세요

<code>$redis->zAdd('key', 10000, '上海');
$redis->zAdd('key', 20001, '北京');
$redis->zAdd('key', 30201, '天津');
$redis->zAdd('key', 30301, '深圳');
$redis->zAdd('key', 40001, '非法');
$index = 38000;
$value = $redis->zRangeByScore('key', $index, '+inf', ['limit' => [0, 1]]); // 深圳</code>

이 데이터는 불규칙합니다
내 생각은 foreach를 수행한 다음 올바른 부분을 꺼내서 크기를 비교하는 것입니다. 3800보다 크거나 같으면 루프를 중단하고 현재 키 값을 반환합니다. .
물론, 형식은 소규모부터 대규모까지 현재 보유하고 있는 것과 일치해야 합니다

redis-cli에는 다음과 같은 명령줄이 있습니다:keys [patten], patten은 정규식일 수 있으며 38000으로 끝나는 키를 찾는 명령은 다음과 같습니다:keys *38000. 해당 phpRedis 메소드 이름은 key, getKeys입니다. 자세한 내용은 key&getKeys

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