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

 mobiledu2502882517 发布于 2022-10-25 10:31

我做了一个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获得具体的数据
现在加了个排序的功能,暂时没有相关思路,不知道怎么处理???

2 个回答
  • nosql本质上跟关系数据库是有区别的,
    hash就是原始数据,
    你这个list就相当于聚簇索引,
    如有要排序,就必须遍历数据,然后内存里排序,然后输出,事实上mysql也是这么做的,
    但是mysql为何快呢?
    因为有索引,
    所以只需要加上索引即可,
    新建一个key,类型为zset或list,
    zset方便些,list必须定期刷新,
    先从zset或list取出id,然后去hash里取出数据。
    当然也可以直接把数据转换成json,存在zset或list里。

    2022-10-26 23:12 回答
  • php$apple_ids = $redis->ZREVRANGE('lists', 0, -1);
    if(empty($apple_ids)){
        return array();
    }
    
    $_         = $redis->HMGET('hash', $apple_ids);
    
    
    
    2022-10-26 23:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有