zoukankan      html  css  js  c++  java
  • redis-sort by

    对某个列表(list)、集合(set)、有序集合(zset)排序的时候按照某个 参考键 进行排序,而不是按照按照这个列表、集合或有序集合本身进行排序;

    被排序的键和参考键在业务上有关联(这个由业务保证)。

    e.g. 

    有一个记录文章id的列表(list),同时还有一个记录文章id及其更新时间的若干个key(哈希)

    文章id列表

    保存文章更新时间和作者的哈希key 

    按照每篇文章的更新时间对文章id进行排序

    排序后返回指定字段

    排序后返回指定的多个字段

    返回制定的多个字段和元素本身(文章id)

    把排序结果存到某个键

    sort    ids   by  post:*->time  desc   get   post:*->author   get #    STORE    idsAfterSort

    性能优化

    对有n个元素的列表进行排序,返回m个元素,其时间复杂度是O(n + mlog(m))

    空间复杂度是O(n)

    所以开发中使用SORT时需要注意:

    (1)尽可能减少排序元素个数

    (2)使用 LIMIT 参数只获取需要的数据

    (3)排序数据较大时,尽可能使用STORE将结果缓存

    **********************技术交流请 email:cuihao0532#163.com 欢迎转载,转载请注明出处!***************************** 如果对本文满意请扫描文章左侧【二维码添加微信】获取更多好玩、有趣、有益、有营养的料, 你我共同成长!Y(^_^)Y
  • 相关阅读:
    一道题
    Codeforces679C. Bear and Square Grid
    CF671C. Ultimate Weirdness of an Array
    CF899F. Letters Removing
    BZOJ5089: 最大连续子段和
    BZOJ2388: 旅行规划
    Vue用v-for实现结构、数据、样式分离(示例2)
    java-JSON的生成与解析
    Vue用v-for实现结构、数据、样式分离(示例1)
    08.记录操作CURD(增删改查)
  • 原文地址:https://www.cnblogs.com/cuish/p/15265647.html
Copyright © 2011-2022 走看看