• 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参数将结果缓存。
     
    • 你总不小心把倩影靠在月亮上面
    • 万顷月光舞动着你优美的梦幻

    !!!

  • 相关阅读:
    异常练习
    Comparator 排序 ArrayList 实操练习
    50道Java线程面试题
    Java ArrayList排序方法详解
    Map集合利用比较器Comparator根据Key和Value的排序
    Java Map 键值对排序 按key排序和按Value排序
    实现java随机数Random的几招
    如何在Java中获取键盘输入值
    力扣 ——3Sum python (三数之和)实现
    python中函数用法
  • 原文地址:https://www.cnblogs.com/wlphp/p/11632684.html
Copyright © 2020-2023  润新知