zoukankan      html  css  js  c++  java
  • Redis学习笔记七:独立功能之排序

    sort 命令可以对列表键、集合键或有序集合键的值进行排序。sort 命令并不修改数据库值,只是输出有序。

    127.0.0.1:6379> rpush numbers 9 8 7 6 1 2 3 4
    (integer) 8
    127.0.0.1:6379> lrange numbers 0 -1
    1) "9"
    2) "8"
    3) "7"
    4) "6"
    5) "1"
    6) "2"
    7) "3"
    8) "4"
    127.0.0.1:6379> sort numbers
    1) "1"
    2) "2"
    3) "3"
    4) "4"
    5) "6"
    6) "7"
    7) "8"
    8) "9"
    127.0.0.1:6379> lrange numbers 0 -1
    1) "9"
    2) "8"
    3) "7"
    4) "6"
    5) "1"
    6) "2"
    7) "3"
    8) "4"
    

    sort 选项

    by 选项,根据权重进行排序:

    127.0.0.1:6379> zadd test-result 3.0 jack 3.5 peter 4.0 tom
    (integer) 3
    127.0.0.1:6379> zrange test-result 0 -1
    1) "jack"
    2) "peter"
    3) "tom"
    127.0.0.1:6379> mset peter_number 1 tom_number 2 jack_number 3
    OK
    127.0.0.1:6379> sort test-result by *_number
    1) "peter"
    2) "tom"
    3) "jack"
    

    alpha 选项,对包含字符串值的键进行排序

    127.0.0.1:6379> sadd fruits apple banana cherry
    (integer) 3
    127.0.0.1:6379> smembers fruits
    1) "cherry"
    2) "apple"
    3) "banana"
    127.0.0.1:6379> sort fruits alpha
    1) "apple"
    2) "banana"
    3) "cherry"
    

    asc 选项和 desc 选项
    默认情况下 sort 命令执行升序排序,以下命令是等价的:

    sort numbers
    sort numbers asc
    

    如果想使用降序排序:

    sort numbers desc
    

    带有 alpha 选项的 by 选项的排序
    by 选项默认假设权重保存的值为数字值,如果权重键保存的是字符串的值的话,需要在使用 by 选项的同时,配合使用 alpha 选项。

    127.0.0.1:6379> sadd fruits apple banana cherry
    127.0.0.1:6379> mset apple-id "fruit-25" banana-id "fruit-79" cherry-id "fruit-13"
    OK
    127.0.0.1:6379> sort fruits by *-id alpha
    1) "cherry"
    2) "apple"
    3) "banana"
    

    limit 选项
    默认 sort 命令总会将排序后的所有元素都返回给客户端,但是通过 limit 选项可以让 sort 命令只返回其中一部分已排序的元素。
    格式:limit < offset > < count >

    127.0.0.1:6379> sort fruits alpha limit 0 2
    1) "apple"
    2) "banana"
    

    get 选项
    默认情况 sort 命令在对键进行排序后,总是返回包含键本身所包含的元素。通过 get 选项可以让 sort 命令在对键值进行排序后,根据被排序和 get 选项指定的模式,查找并返回某些键的值。

    127.0.0.1:6379> sadd students "peter" "jack" "tom"
    (integer) 3
    127.0.0.1:6379> sort students alpha
    1) "jack"
    2) "peter"
    3) "tom"
    127.0.0.1:6379> set peter-name "Peter White"
    OK
    127.0.0.1:6379> set jack-name "Jack Snow"
    OK
    127.0.0.1:6379> set tom-name "Tom Smith"
    OK
    127.0.0.1:6379> sort students alpha get *-name
    1) "Jack Snow"
    2) "Peter White"
    3) "Tom Smith"
    

    store 选项
    默认情况 store 命令只向客户端返回排序的结果,而不保存结果。通过 store 选项,可以将排序结果保存在指定的键里,并在有需要时重用这个排序结果:

    127.0.0.1:6379> sort students alpha store stored_students
    (integer) 3
    

    多个选项的执行顺序

    选项的执行顺序

    1. 排序
    2. limit
    3. get
    4. store
    5. 向客户端返回结果集

    选项的摆放顺序
    除了 get 选项外,改变选项的摆放顺序不会影响 sort 命令执行这些选项的顺序。在调整 sort 命令各个选项摆放顺序时,必须小心处理 get 选项。

  • 相关阅读:
    C# httpclient获取cookies实现模拟web登录
    C# httpclient获取cookies实现模拟web登录
    长连接与短连接的区别以及使用场景
    长连接与短连接的区别以及使用场景
    vuejs项目性能优化总结
    vuejs项目性能优化总结
    C# 发送HTTP请求(可加入Cookies)
    C# 发送HTTP请求(可加入Cookies)
    集合框架系列教材 (十六)- 其他
    集合框架系列教材 (十五)- 关系与区别
  • 原文地址:https://www.cnblogs.com/liushijie/p/5095531.html
Copyright © 2011-2022 走看看