iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Redis基本操作进阶篇学习-
  • 464
分享到

Redis基本操作进阶篇学习-

Redis基本操作进阶篇学习- 2015-09-03 06:09:29 464人浏览 才女
摘要

Redis中SORT命令可以对列表类型、集合类型以及有序集合类型键进行排序,并返回显示排序的结果,但是不会对原有数据进行修改。 有序集合 Redis有序集合中每个元素都会关联一个double类

Redis基本操作进阶篇学习-

Redis中SORT命令可以对列表类型、集合类型以及有序集合类型键进行排序,并返回显示排序的结果,但是不会对原有数据进行修改。

有序集合

Redis有序集合中每个元素都会关联一个double类型的分数。Redis通过分数来为集合中的成员进行从小到大的排序。

有序集合中的成员是唯一的,但分数(score)可以重复。

zadd name 2 kang

zadd name 1 li

zadd name 3 wang

zadd name 1 zhao

zrange name 0 -1
# 返回值:
# 1) "li"
# 2) "zhao"
# 3) "kang"
# 4) "wang"

SORT命令

Redis中SORT命令可以对列表类型、集合类型以及有序集合类型键进行排序,并返回显示排序的结果,但是不会对原有数据进行修改。

在对有序集合烈性排序时回忽略元素的分数,只针对元素自身的值进行排序。

常用参数介绍

参数 描述
DESC 使目标倒序排列
ALPHA 针对非数字元素排序
LIMIT 参数可以指定返回值范围
即跳过offset个元素并取之后的count个元素
BY 基于参考键进行排序
STORE 保存排序结果

针对数字元素进行排序

# 对集合进行排序操作
sadd temperature 0 18 16 -1 5 -6

sort temperature
# 正序排序返回值:
# 1) "-6"
# 2) "-1"
# 3) "0"
# 4) "5"
# 5) "16"
# 6) "18"

sort temperature desc
# 倒序排序返回值:
# 1) "18"
# 2) "16"
# 3) "5"
# 4) "0"
# 5) "-1"
# 6) "-6"

# 对列表进行排序
lpush age 23 18 16 22 26 28 42

lrange age 0 -1
# 返回值:
# 1) "42"
# 2) "28"
# 3) "26"
# 4) "22"
# 5) "16"
# 6) "18"
# 7) "23"

sort age
# 正序排序返回值:
# 1) "16"
# 2) "18"
# 3) "22"
# 4) "23"
# 5) "26"
# 6) "28"
# 7) "42"

sort age desc
# 倒序排序返回值:
# 1) "42"
# 2) "28"
# 3) "26"
# 4) "23"
# 5) "22"
# 6) "18"
# 7) "16"


# 对有序集合进行排序
zadd score 1 20 2 40 3 10 4 88

zrange scroe 0 -1
# 返回值:
# 1) "20"
# 2) "40"
# 3) "10"
# 4) "88"

sort score
# 正序排序返回值:
# 1) "10"
# 2) "20"
# 3) "40"
# 4) "88"

sort score desc
# 倒序排序返回值:
# 1) "88"
# 2) "40"
# 3) "20"
# 4) "10"

针对非数字元素排序

lpush name zhao qian sun li

sort name
# 返回值:
# (error) ERR One or more scores can"t be converted into double

sort name alpha
# 正序排序返回值
# 1) "li"
# 2) "qian"
# 3) "sun"
# 4) "zhao"

sort name alpha desc
# 倒序排序返回值:
# 1) "zhao"
# 2) "sun"
# 3) "qian"
# 4) "li"

按范围获取排序结果

lpush age 18 20 22 16 14 23

sort age limit 2 -1
# 返回值:
# 1) "18"
# 2) "20"
# 3) "22"
# 4) "23"

基于参考键进行排序

BY参数的语法为BY 参考键,其中参考键可以是字符串类型键或散列类型键的某个字段。

如果使用了BY属性,SORT命令将根据对应参考键的值进行排序。

当键名为常量时,SORT命令将不会执行排序操作。

lpush stuno 001 002 003

mset name_001 kang age_001 18

mset name_002 zhao age_001 23

mset name_003 liu age_001 16

sort stuno by age_*
# 返回值:
# 1) "002"
# 2) "003"
# 3) "001"

lpush stuno 001 002 003

MSET name kang age 18

sort stuno by age
# 返回值:
# 1) "003"
# 2) "002"
# 3) "001"

当参考键名中不包含“*”时(即键名为常量),SORT命令将不执行排序操作。

保存排序结果

STORE参数可以保存SORT排序结果,保存后的键的类型为列表类型,如果键已经存在,则会覆盖。

lpush age 18 23 16 24

sort age store result

lrange result 0 -1
# 返回值:
# 1) "16"
# 2) "18"
# 3) "23"
# 4) "24"

注意事项

  1. 尽可能减少待排序键中元素的个数
  2. 多使用LIMIT参数获取数据
  3. 如果排序数据量过大,尽可能使用STORE参数缓存结果
您可能感兴趣的文档:

--结束END--

本文标题: Redis基本操作进阶篇学习-

本文链接: https://www.lsjlt.com/news/9045.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么查询当前用户所有的表
    要查询当前用户拥有的所有表,可以使用以下 sql 命令:select * from user_tables; 如何查询当前用户拥有的所有表 要查询当前用户拥有的所有表,可以使...
    99+
    2024-05-14
    oracle
  • oracle怎么备份表中数据
    oracle 表数据备份的方法包括:导出数据 (exp):将表数据导出到外部文件。导入数据 (imp):将导出文件中的数据导入表中。用户管理的备份 (umr):允许用户控制备份和恢复过程...
    99+
    2024-05-14
    oracle
  • oracle怎么做到数据实时备份
    oracle 实时备份通过持续保持数据库和事务日志的副本来实现数据保护,提供快速恢复。实现机制主要包括归档重做日志和 asm 卷管理系统。它最小化数据丢失、加快恢复时间、消除手动备份任务...
    99+
    2024-05-14
    oracle 数据丢失
  • oracle怎么查询所有的表空间
    要查询 oracle 中的所有表空间,可以使用 sql 语句 "select tablespace_name from dba_tablespaces",其中 dba_tabl...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-14
    oracle
  • oracle怎么建立新用户
    在 oracle 数据库中创建用户的方法:使用 sql*plus 连接数据库;使用 create user 语法创建新用户;根据用户需要授予权限;注销并重新登录以使更改生效。 如何在 ...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-14
    oracle
  • oracle怎么查询时间段内的数据记录表
    在 oracle 数据库中查询指定时间段内的数据记录表,可以使用 between 操作符,用于比较日期或时间的范围。语法:select * from table_name wh...
    99+
    2024-05-14
    oracle
  • oracle怎么查看表的分区
    问题:如何查看 oracle 表的分区?步骤:查询数据字典视图 all_tab_partitions,指定表名。结果显示分区名称、上边界值和下边界值。 如何查看 Oracle 表的分区...
    99+
    2024-05-14
    oracle
  • oracle怎么导入dump文件
    要导入 dump 文件,请先停止 oracle 服务,然后使用 impdp 命令。步骤包括:停止 oracle 数据库服务。导航到 oracle 数据泵工具目录。使用 impdp 命令导...
    99+
    2024-05-14
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作