2013-05-21 2 views
0

나는 기본적으로 같은 레디 스를 사용하고 싶습니다. ("에서 삭제, 선택") 레디 스 명령사용 레디 스 또는 리더

DELETE from qtable WHERE id = $someid 

내가 ("삽입") 생산 및 소모에 사용합니다 :

아이디어는 또한 같은 완료 "작업"을 제거하기 위해 다음이다 종료?

Redis는 대기열로 사용할 수 있지만 정확하게 삽입 된 순서대로 답변을 보내지 않고 "now"가 processing_due 인 경우에 기반합니다.

리더 보드와 거의 같은 문제인 것 같습니까?

(나는 레디 스의 작동 방식을 주위에 내 머리를 정리하려고이 문서에서 충분히 간단 보이지만, 난 그냥 그것을 얻을하지 않습니다.)

괜찮은 솔루션은 다음 ZADD qtable <timestamp> <UUID>을 할 수 있고시겠습니까 UUID를 키로 사용하여 그 아래에 (json) 값을 저장 하시겠습니까?

답변

1

Sorted Set을 사용할 수 있습니다. 여기서 점수는 시간 (귀하가 제안한 정수)이며, ZRANGEBYSCORE을 사용하여 쿼리합니다. 각 멤버는 "필드"에 대한 Json 표현입니다. 예 : {id:"1",data:"bla",processing_due:"3198382"}

삭제와 관련하여 삭제할 관련 회원을 찾을 때 ZREM을 사용하십시오. Json 문자열을 매개 변수로 전달하면됩니다.

더 나은 변형은 생성 된 ID를 회원으로 보유하는 것일 수 있으며 별도의 문자열 유형 키는 데이터의 Json 표현과 함께 ID 쌍을 저장합니다. 두 구조체를 동기화 된 상태로 유지해야합니다.

+0

아하 이것은 내가 혼란스러워하는 또 다른 것입니다. 가치에 따라 삭제하는 것이 REDIS 토지의 우수 사례로 간주됩니까? (SQL에서 일반적으로 한 것처럼 중요하지 않습니다.) 편집 : 감사합니다! 이것은 원래 질문을 쓰는 동안 내가 알아 낸 것입니다. 그러나 그것은 외계인이라고 느꼈다. 나는 이것이 올바른 방법이라고 믿을 수 없었다. 이 "패턴"을 확인하면 큰 도움이됩니다. 감사합니다. –

+1

실제로 키를 기반으로 삭제하지만 "키"는 본질적으로 정렬 된 집합의 "멤버"이므로 전체 구조체를 나타내는 하나의 문자열 인 실제 "키"와 혼동하지 마십시오 (a 간단한 문자열, 집합, 정렬 집합, 해시 또는 목록) –

+0

아, 멋지다. 댓글에 +1을 붙이면 다른 사람들에게도 도움이 될 수 있습니다. 제 경우에는 JSON 문서가 작기 때문에 이중 구조와 * id * 접근법을 사용하지 않을 것입니다. –