>  Q&A  >  본문

redis的list类型做分页索引的排序问题

我做了一个list来做id的索引,一个hash存储具体的数据

list

key value
lists app_id:12
lists app_id:13
lists app_id:14

hash

key field value
app_id:12 app_name 天气预报
app_sort 1
app_id:13 app_name 游戏推荐
app_sort 3
app_id:14 app_name 新闻评论
app_sort 2

我之前是lrange操作list获得相关的app_id,然后去hash使用getall获得具体的数据
现在加了个排序的功能,暂时没有相关思路,不知道怎么处理???

PHP中文网PHP中文网2738일 전647

모든 응답(2)나는 대답할 것이다

  • 高洛峰

    高洛峰2017-04-22 09:02:34

    으아악

    회신하다
    0
  • 迷茫

    迷茫2017-04-22 09:02:34

    NoSQL은 관계형 데이터베이스와 본질적으로 다릅니다.
    해시는 원본 데이터입니다.
    귀하의 목록은 클러스터형 인덱스
    와 같습니다. 정렬하려면 데이터를 순회한 다음 메모리에서 정렬한 다음 출력해야 합니다. 실제로 mysql도 이 작업을 수행합니다.
    그런데 왜 mysql이 빠른가?
    색인이 있으니까
    색인만 추가하면 됩니다.
    새 키를 만듭니다. 유형은 zset 또는 list입니다.
    zset이 더 편리합니다. 목록을 정기적으로 새로 고쳐야 합니다.
    먼저 zset 또는 list에서 ID를 가져온 다음 해시에서 데이터를 가져옵니다.
    물론 데이터를 json으로 직접 변환하여 zset 또는 list에 저장할 수도 있습니다.

    회신하다
    0
  • 취소회신하다