사용자의 항목 목록을 저장하는 방법을 찾고 있는데,이 목록은 24 시간 내에 만료됩니다. Redis를 사용하여이를 수행 할 수있는 방법이 있습니까? 목록을 사용하고 각 개별 항목의 만료를 설정하는 것을 생각하고 있었지만 더 좋은 방법이 있습니까?항목이 만료 된 Redis 목록?
1
A
답변
3
아니요, 각 항목의 만료 시간을 LIST
으로 설정할 수 없습니다. 전체 LIST
에 대해서만 만료를 설정할 수 있습니다.
SET user1:item1 value EX 86400
SET uesr1:iter2 value EX 86400
SET user2:item1 value EX 86400
는 지정된 사용자의 모든 항목, 당신은 패턴으로 SCAN
명령을 사용할 수 있습니다 얻으려면 (또는 사용 : 당신이 원하는 것을 달성하기 위해
, 당신은 각 항목에 대한 키가 필요 Keyspace Notification
는) 그러나보다 복잡한 작업과 함께, 더 나은 성능을 달성하기 : 허용 대답에 언급 한 바와 같이
SCAN 0 MATCH user1:*
2
가, 레디 스에서 만기에만 키 수준에서 수행됩니다 - 중첩 된 요소가 만료 할 수 없습니다.
만료 요소가있는 목록을 구현하려면 정렬 된 집합 데이터 구조를 사용할 수 있습니다. 모든 회원의 점수는 현재 신기원이어야하므로 삽입 순서는 유지됩니다. 값 (구성원) 고유하지 않은 경우,
ZADD user1:items 1514822755 1514822755:value
ZADD user1:items 1514822758 1514822758:value
이 항목을 "만료"
-inf
에서
ZREMRANGEBYSCORE
현재의 시대에서 24 시간을 뺀를 호출하려면 :, 신기원을 연결하여 그래서 예컨대 그들을합니다.