zoukankan      html  css  js  c++  java
  • Redis5排序

    1:对集合类型的元素进行排序

    元素的值必须都是数字和浮点类型

    sort temp

    在对有序集合类型排序时会忽略元素的分数,只针对元素自身的值进行排序

    除了可以排列数字外,SORT命令还可以通过ALPHA参数实现按照字典顺序排列非数字元素

     sort abc  ALPHA

    即可对字母和数字混合的进行排序   数字>小写>大写

    2:排序默认的是从小到大, DESC 参数 即可变成从大到小

     sort abc  ALPHA DESC

    3:分页 和mysql 是一样的

     sort abc  ALPHA DESC LIMIT 0 2

    如果键tag:php集合下存的是属于标签PHP的文章的ID,现在想根据这些文章的创建时间排序怎么办?

    by参数

    用法

    sort tag:php by post:*->created_at desc

    tag:php 键存的都是文章ID

    post:* 这些都是Hash类型里头都有字段created_by

     

     除了hash类型指定字段也可以直接就是string 类型

    sort tag:php by post_created_at:* desc

    当两个键的值是一样的时候,就会比较两个键的大小

    只能有一个by参数

    如果我排序的时候我还想顺便获取文章的标题

    GET 参数

    sort tag:php by post:*->created_at desc get post:*->title

    可以get 多个参数,如果参数不存在会存NULL

    如果想要顺便返回文章的ID get # 就可以了

    sort tag:php by post:*->created_at desc get post:*->title  get #

    这个也是带分页功能的

    sort tag:php by post:*->created_at desc get post:*->title  get # limit 0 2

    STORE 参数

    如果想要把排序的结果保存到某个键中, 排序是很耗资源的

    sort tag:php by post:*->created_at desc get post:*->title  get # store result.store
    result.store键是一个list 类型,如果存在键直接覆盖


    性能问题:
    Sort 是redis中最强大复杂的命令之一
    (1)尽可能减少待排序键中元素的数量(使N尽可能小)。
    (2)使用LIMIT参数只获取需要的数据(使M尽可能小)。
    (3)如果要排序的数据数量较大,尽可能使用STORE参数将结果缓存。
     
    • 你总不小心把倩影靠在月亮上面
    • 万顷月光舞动着你优美的梦幻

    !!!

  • 相关阅读:
    创建字典的方法
    python中,a=10.0 b=10.0 a is b 为什么输出是false
    Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
    二十三种设计模式及其python实现
    python字符串替换的2种方法
    数据库索引的实现原理?
    异步IO数据库队列缓存RabbitMQ队列
    Python 如何用列表实现栈和队列?
    Python数据结构与算法?
    django -----原生SQL语句查询与前端数据传递?
  • 原文地址:https://www.cnblogs.com/wlphp/p/11632684.html
Copyright © 2011-2022 走看看