cari

Rumah  >  Soal Jawab  >  teks badan

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中文网2798 hari yang lalu706

membalas semua(2)saya akan balas

  • 高洛峰

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

    php$apple_ids = $redis->ZREVRANGE('lists', 0, -1);
    if(empty($apple_ids)){
        return array();
    }
    
    $_         = $redis->HMGET('hash', $apple_ids);
    
    
    

    balas
    0
  • 迷茫

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

    NoSQL pada asasnya berbeza daripada pangkalan data hubungan,
    Hash ialah data asal,
    Senarai anda bersamaan dengan indeks berkelompok,
    Jika anda ingin mengisih, anda mesti melintasi data, kemudian mengisih dalam ingatan, dan kemudian mengeluarkannya, mysql juga melakukan ini,
    Tetapi mengapa mysql pantas?
    Sebab ada indeks,
    Jadi cuma tambah indeks,
    Buat kunci baharu, taip zset atau senarai,
    zset lebih mudah, senarai mesti dimuat semula dengan kerap,
    Mula-mula dapatkan id daripada zset atau senarai, dan kemudian dapatkan data daripada cincang.
    Sudah tentu, anda juga boleh terus menukar data ke dalam json dan menyimpannya dalam zset atau senarai.

    balas
    0
  • Batalbalas