예:
이제 배열이 있습니다.
배열(
<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
를 참조하세요.