조건으로 쿼리를 정렬 된 세트 I가 키 Z 설정 순서 및 값 :레디 스 만기
1 "A"
4 "B"
3 개의 "C"뿐만 아니라
, I 다양한 시간 후에 만료되도록 설정된 키, a, b, c 키.
키의 값이 이미 만료되었으므로 Z에서 가장 높은 순위 값을 찾고 싶습니다. 이 작업을 수행 할 수있는 명확한 방법이 있습니까?
조건으로 쿼리를 정렬 된 세트 I가 키 Z 설정 순서 및 값 :레디 스 만기
1 "A"
4 "B"
3 개의 "C"뿐만 아니라
, I 다양한 시간 후에 만료되도록 설정된 키, a, b, c 키.
키의 값이 이미 만료되었으므로 Z에서 가장 높은 순위 값을 찾고 싶습니다. 이 작업을 수행 할 수있는 명확한 방법이 있습니까?
Redis에는 만료 후크가 없습니다. 당신이 할 수있는 일은, 그 시대가 시간 이후 초 단위 인 시간 순서이며, 마지막 시간은 가장 오래 될 것입니다. 그런 다음 응용 프로그램이나 Lua 저장 프로 시저에서 시간 (현재 목록의 항목 점수를 뺀 값)을 빼서 만료되었는지 확인할 수 있습니다.
가 여기에 또 다른 접근 방식 : 만료가 발생 할 때 레디 스 클라이언트가 어떤 조치를 취할 수 있도록
레디 스 2.8으로 키 - 공간이나 키 이벤트 알림에 가입 할 수 있습니다. http://redis.io/topics/notifications만료 알림을 받으면 다른 주문 세트, 예를 들어 Zexpires에 항목을 추가하십시오. 그런 다음 작업을 수행해야하는 경우 ZINTERSTORE를 사용하여 교차점을 찾고 교차로 결과에 대해 ZRANK를 사용하여 가장 높은 순위 값을 얻을 수 있습니다.
팁 : 가로로 크기를 조절하는 경우 키 공간 알림을 관찰하고 동일한 계산을 수행하려고 시도하는 여러 클라이언트가 없는지 확인하십시오. 만약 당신이 당신의 Redis 클라이언트의 인스턴스를 여러 개 가지고 있다면, 수동으로 일을하고 싶을 것입니다.