2013-11-14 4 views
0

조건으로 쿼리를 정렬 된 세트 I가 키 Z 설정 순서 및 값 :레디 스 만기

1 "A"
4 "B"
3 개의 "C"뿐만 아니라

, I 다양한 시간 후에 만료되도록 설정된 키, a, b, c 키.

키의 값이 이미 만료되었으므로 Z에서 가장 높은 순위 값을 찾고 싶습니다. 이 작업을 수행 할 수있는 명확한 방법이 있습니까?

답변

1

Redis에는 만료 후크가 없습니다. 당신이 할 수있는 일은, 그 시대가 시간 이후 초 단위 인 시간 순서이며, 마지막 시간은 가장 오래 될 것입니다. 그런 다음 응용 프로그램이나 Lua 저장 프로 시저에서 시간 (현재 목록의 항목 점수를 뺀 값)을 빼서 만료되었는지 확인할 수 있습니다.

2

가 여기에 또 다른 접근 방식 : 만료가 발생 할 때 레디 스 클라이언트가 어떤 조치를 취할 수 있도록

레디 스 2.8으로 키 - 공간이나 키 이벤트 알림에 가입 할 수 있습니다. http://redis.io/topics/notifications

만료 알림을 받으면 다른 주문 세트, 예를 들어 Zexpires에 항목을 추가하십시오. 그런 다음 작업을 수행해야하는 경우 ZINTERSTORE를 사용하여 교차점을 찾고 교차로 결과에 대해 ZRANK를 사용하여 가장 높은 순위 값을 얻을 수 있습니다.

팁 : 가로로 크기를 조절하는 경우 키 공간 알림을 관찰하고 동일한 계산을 수행하려고 시도하는 여러 클라이언트가 없는지 확인하십시오. 만약 당신이 당신의 Redis 클라이언트의 인스턴스를 여러 개 가지고 있다면, 수동으로 일을하고 싶을 것입니다.