복붙노트

[REDIS] 레디 스 : 어떻게 키로 내 해시를 정렬 할 수 있습니다?

REDIS

레디 스 : 어떻게 키로 내 해시를 정렬 할 수 있습니다?

내가 해시에 저장된 소식을 가지고 있다고 가정하자. 나는 다른 해시 (각 해시 한 소식을 나타냅니다)이 :

news:1
news:2
news:3
...

나는 키가 그렇게 명령으로 모든 키를 검색 할 :

KEYS news:*

키가 정렬되지 않습니다 문제 :

news:3
news:1
news:2

나는 올바른 순서로 키의 목록을 검색하고 싶습니다. 나는 확실하지 해시 구조라고 내가 필요 해요. 단, 레디 스 문서에 따라 :

해시 내 뉴스 객체를 저장하는 것은 좋은 아이디어가 될 것으로 보인다.

어떤 제안?

해결법

  1. ==============================

    1.인덱스 문서로 레디 스 해시 생각하십시오.

    인덱스 문서로 레디 스 해시 생각하십시오.

    HSET news:1 title levy_breaks
    HSET news:1 type breaking_news
    HSET news:1 byline alphazero
    HSET news:1 date 04:25:2011
    HSET news:1 content <the story>
    
    HSET news:2 ...
    ..
    

    상기, 뉴스 : 1 '해쉬 필드'마지막 연관된 값 뒤에 '해시 키'이다.

    즉, 당신이 단순히 '해시 키'를 정렬 할 것 같다 고 말했다.

    (필드가 N하는) 뉴스 항목에 대한 모든 필드를 설정하는 MULTI / EXEC 구조를 사용하고, 마지막도 해시 키를 추가 - 예를 정렬 된 세트에서 it - 뉴스 항목을 선택합니다. 또는, 당신은 단지 목록에 추가하고 그 목록에 SORT 명령을 사용할 수 있습니다.

    레디 스의 문서.

  2. ==============================

    2.당신이 할 수있는 것은 존재 뉴스 항목 집합 또는 목록을 저장합니다. 새 뉴스 항목을 만들 때 예를 들어,의 뉴스 가정 해 봅시다 : 네, 당신은, 세트에 인덱스 4를 추가 목록을 말할 수 : 소식, 지금 가지고있는 것이다 [1, 2, 3, 4].

    당신이 할 수있는 것은 존재 뉴스 항목 집합 또는 목록을 저장합니다. 새 뉴스 항목을 만들 때 예를 들어,의 뉴스 가정 해 봅시다 : 네, 당신은, 세트에 인덱스 4를 추가 목록을 말할 수 : 소식, 지금 가지고있는 것이다 [1, 2, 3, 4].

    이제 뉴스 해시 구조가 날짜, 저자 가정합니다. 장소에두고 다음을 실행할 수 있습니다 :

    sort list:news get *->some_value_a ->*->some_value_b
    
  3. from https://stackoverflow.com/questions/5780365/redis-how-can-i-sort-my-hash-by-keys by cc-by-sa and MIT license