当前位置: 首页 > news >正文

Redis数据结构命令

目录

  • 一、开启Redis命令行客户端:
  • 二、Redis数据结构命令:
    • 1.通用命令:
    • 2.基本数据类型:
      • 2.1.String
      • 2.2.Hash
      • 2.3.List
      • 2.4.Set
      • 2.5.SortedSet
    • 3.特殊数据类型:
      • 3.1.GEO
      • 3.2.BitMap
      • 3.3.HyperLog

一、开启Redis命令行客户端:

redis-cli [-h -p -a]

  • -h redis结点ip地址,默认127.0.0.1
  • -p redis结点端口,默认6379
  • -a redis密码

二、Redis数据结构命令:

redis是字符型数据库,key是String类型,value类型多种多样。

1.通用命令:

通用命令对所有数据类型均适用。

  • 根据表达式查询key值: KEYS 表达式 官方说明
    该命令底层是模糊查询,耗时长,不建议在生产环境设备上使用。
  • 删除key:DEL k1 k2 ... kn 官方说明
  • 判断key是否存在EXISTS k1 k2 ... kn 官方说明
  • 给key设置有效期,到期时key会被自动删除:EXPIRE key seconds [NX | XX | GT | LT] 官方说明
    • NX – 仅当键不存在过期时间时,才设置过期时间
    • XX – 仅当键已存在过期时间时,才设置过期时间
    • GT – 仅当新过期时间大于当前过期时间时,才设置过期时间
    • LT – 仅当新过期时间小于当前过期时间时,才设置过期时间
  • 查看key剩余有效期TTL key 官方说明
    返回值:-1表示永久有效,-2表示失效

2.基本数据类型:

2.1.String

在这里插入图片描述

String类型根据字符串格式不同,可以分为三类:

  • string
  • int,可以做自增、自减操作
  • float,可以做自增、自减操作

不管是哪种格式,底层都是以字节数组形式存储,最大不会超过512MB。

  • SET key value:新建String类型键值对或更新已经存在的String类型键值对 官方说明
  • GET key:根据key查询value 官方说明
  • MSET k1 v1 k2 v2 ... kn vn:批量添加或更新 官方说明
  • MGET k1 k2 ... kn: 批量查询 官方说明
  • INCR key:让一个整型的value自增1 官方说明
  • INCRBY key num:让一个整型的value自增num 官方说明
    num可以为负数是自减
  • INCRBYFLOAT key num:让一个浮点类型的value自增num 官方说明
  • SETNX key value:添加一个String类型的键值对,前提是key不存在,为了防止SET误修改 官方说明
  • SETEX key value seconds:添加一个String类型键值对并指定有效期seconds 官方说明

当value是JSON结构的字符串时时,String类型会自动将字符串按结构拆分出不同的value

set product:huawei ‘{“id”:1, “name”:“华为”}’

  • product:huawei 是id
  • ‘{“id”:1, “name”:“华为”}’ 是value字符串

2.2.Hash

Hash类型的Value是一个无序字典。

  • 无序
  • 查找快
  • 元素不可重复(field唯一性)

在这里插入图片描述

下述指令就是在String指令的基础上加了H:

  • HSET key field value:新建HASH类型键值对或更新已经存在的HASH类型键值对 官方说明
  • HGET key field:根据key field查询value 官方说明
  • HMSET k1 f1 v1 k2 f1 v1 ... k2 fn vn:批量添加或更新 官方说明
  • HMGET k1 v1 k2 v1 ... kn v2: 批量查询 官方说明
  • HGETALL key:查询key的所有field-value对 官方说明
  • HKEYS key:查询key的所有field 官方说明
  • HVALS key:查询key的所有value(不包含key) 官方说明
  • HINCRBY key field num:让一个HASH类型的value自增num 官方说明
  • HSETNX key field value:添加一个HASH类型的键值对,前提是field不存在,为了防止SET误修改 官方说明

2.3.List

在这里插入图片描述

List是一个双向链表结构,既支持正向检索也支持反向检索。

  • 有序
  • 插入和删除速度快(链表)
  • 查询速度较传统数组慢(链表查询需要遍历)
  • 元素可以重复

用于保存对顺序有要求的数据。

  • LPUSH key value1 value2 .... valuen:向链表左侧插入多个元素
  • LPOP key:移除并返回链表左侧第一个元素,没有则返回nil
  • RPUSH key value1 value2 .... valuen:向链表右侧插入多个元素
  • RPOP key:移除并返回链表右侧第一个元素,没有则返回nil
  • LRANGE key start end:返回下标start~end内所有元素
  • BLPOP、BRPOP key second: 除并返回链表左/右侧第一个元素,没有则等待指定秒数(阻塞)

2.4.Set

set也是一个hash表,区别于Hash的是Set不需要额外的field来操作value,可以直接对value进行操作

  • 无序
  • 查找快
  • 元素不可重复(value唯一性)
  • 支持交交集、并集、差集等功能

相关命令:

  • SADD key value1 value2 .... valuen:插入多个元素
  • SREM key value1 value2 .... valuen:移除指定元素
  • SCARD key:返回set中元素的个数
  • SISMEMBER key value:判断value元素是否存在于set中
  • SMEMBERS key:获取set中的所有元素
  • SINTER key1 key2 ... keyn:求set之间的交集
  • SUNION key1 key2 ... keyn:求set之间的并集
  • SDIFF key1 key2 ... keyn:求set之间的差集

2.5.SortedSet

Redis中的SortedSet是一个可排序的set集合,底层实现是一个SkipList加Hash表:

  • 可排序(需要额外的score变量)
  • 元素不可重复
  • 查询速度快

常用于实现排行榜功能。

常见指令(以下命令默认排名升序,降序则需要在命令的Z后添加REV):

  • ZADD key score value:添加一个或多个元素到sorted set,如果已经存在则更新其score值。
  • ZREM key value:删除指定元素。
  • ZSCORE key value:获取指定元素的score值。
  • ZRANK key value:获取指定元素在sorted set中的排名。
  • ZCARD key:获取sorted set中的元素个数。
  • ZCOUNT key min max:获取sorted set中score在min~max的元素个数。
  • ZRANGE key rank1 rank2:获取排序后排名在rank1~rank2的元素。
  • ZRANGEBYSCORE key min max:获取score在min~max的元素。
  • ZINCRBY key num value:修改指定元素的分数为score+num。
  • ZINTER key1 key2 ... keyn:求sortedset之间的交集
  • ZUNION key1 key2 ... keyn:求sortedset之间的并集
  • ZDIFF key1 key2 ... keyn:求sortedset之间的差集

3.特殊数据类型:

3.1.GEO

3.2.BitMap

3.3.HyperLog

http://www.dtcms.com/a/560599.html

相关文章:

  • 【Dify】通过Docker-Compose的安装部署(Linux系统)
  • SEO优化学习指南
  • betaflight基于自制特殊固件配置文件的 F405 飞控固件升级与配置迁移指南(附 AI 沟通命令适配技巧)
  • 通过条形码获取对应商品信息python程序
  • LaTeX基础使用
  • 【Linux】基础指令(4):基础指令热键shell运行原理
  • [Dify 实战] 搭建企业内网知识库系统:Dify 自托管部署全攻略
  • LVS 负载
  • NFS服务器的搭建
  • 【高并发服务器】十三、TcpServer服务器管理模块
  • 15.套接字和标准I/O
  • Linux TcpSocket编程
  • 怎么可以在百度发布信息seo won jin
  • TensorFlow深度学习实战——自定义图神经网络层
  • 车陂手机网站开发学校网站群建设必要
  • 【Elasticsearch入门到落地】18、Elasticsearch实战:Java API详解高亮、排序与分页
  • Java Web学习 第1篇前端基石HTML 入门与核心概念解析
  • Kafka4.1.0 队列模式尝鲜
  • transformer记录一(输入步骤讲解)
  • 做生存分析的网站有哪些网站背景怎么弄
  • Tomcat 新手避坑指南:环境配置 + 启动问题 + 乱码解决全流程
  • 整理、分类、总结与介绍Vue前端开发日常常用的第三方库/框架/插件-收藏
  • 第九天~在Arxml中定义一对XCP-PDU用于测量标定
  • Tomcat 配置问题速查表
  • 第九天~AUTOSAR网络管理NM-PDU详解:在Arxml中定义唤醒节点的NM-PDU
  • 在centos 7上配置FIP服务器的详细教程!!!
  • 做网站三网多少钱wordpress 贴吧主题
  • 无锡网站建设营销型诸城公司做网站
  • 【Docker】容器网络探索(二):实战理解 host 网络
  • 《数据结构风云》:二叉树遍历的底层思维>递归与迭代的双重视角