Redis 命令

通用命令

Redis 的通用命令是指不特定于某种数据结构,可以用于操作几乎所有键的命令

输入help @ generic可以查看所有redis通用命令

复制代码
help @ generic

还可以通过" help 命令名称"的方式查看命令使用方法

redis的通用命令很多,我们其实不需要把它们所有都记住,只要记住几个常见命令,学会使用help查看命令就行了。

常用命令

  • keys: 找到符合所有模板的Key

    #查询所有键
    keys *
    #查询首字母为n的键
    keys *a

简单直接,但是这种查询方式是模糊匹配,会阻塞 Redis 服务器,直到所有键扫描完毕。如果数据库有几百万个键,它会阻塞好几秒,导致服务不可用

  • del:删除一个指定的key

返回值就是删除了多少个key

  • Exists:判断key是否存在
  • Expire:给一个key设置有效期,到期自动删除

Redis把数据存在内存中,如果不及时删除会导致内存占用过多,常用在验证码(5分钟过期)、登录状态(30分钟过期)、限流计数器(1分钟重置)的场景

复制代码
expire key second

String类型命令

所有的键(Key)都是字符串类型,而值(Value)可以是字符串、整数或浮点数

命令名称 命令功能描述
SET 添加或者修改已经存在的一个 String 类型的键值对
GET 根据 key 获取 String 类型的 value
MSET 批量添加多个 String 类型的键值对
MGET 根据多个 key 获取多个 String 类型的 value
INCR 让一个整型的 key 自增 1
INCRBY 让一个整型的 key 自增并指定步长,例如:incrby num 2 让 num 值自增 2
INCRBYFLOAT 让一个浮点类型的数字自增并指定步长
SETNX 添加一个 String 类型的键值对,前提是这个 key 不存在,否则不执行
SETEX 添加一个 String 类型的键值对,并且指定有效期

Hash类型命令

Hash类型是一个包含多个键值对的键值对集合

  • string类型的key字符串

  • hash类型的key是键值对

hash结构可以对对象中每个字段进行单独的CRUD

命令名称 命令功能描述
HSET 添加或者修改 hash 类型 key 的 field 的值
HGET 获取一个 hash 类型 key 的 field 的值
HMSET 批量添加多个 hash 类型 key 的 field 的值
HMGET 批量获取多个 hash 类型 key 的 field 的值
HGETALL 获取一个 hash 类型的 key 中的所有的 field 和 value
HKEYS 获取一个 hash 类型的 key 中的所有的 field
HVALS 获取一个 hash 类型的 key 中的所有的 value
HINCRBY 让一个 hash 类型 key 的字段值自增并指定步长
HSETNX 添加一个 hash 类型的 key 的 field 值,前提是这个 field 不存在,否则不执行

HSET

HSET不仅可以添加数据,还可以修改数据

复制代码
#hset key field value
hest user name jack

HGET

复制代码
hget key field

List类型命令

List类型类似于双向链表(支持正向检索和反向检索)

  • 有序

  • 元素可以重复

  • 插入和删除速度快

|-----------|---------------------------|
| LPUSH | 向列表左侧(头部) 插入一个或多个元素 |
| RPUSH | 向列表右侧(尾部) 插入一个或多个元素 |
| LPOP | 移除并返回列表左侧(头部) 的第一个元素 |
| RPOP | 移除并返回列表右侧(尾部) 的第一个元素 |
| BLPOP | 从多个列表中,左侧阻塞式弹出元素(队列为空时等待) |
| BRPOP | 从多个列表中,右侧阻塞式弹出元素 |
| LRANGE | 获取列表指定索引范围内的元素(支持负数索引) |
| LINDEX | 通过索引获取列表中的单个元素 |
| LLEN | 获取列表长度(元素个数) |
| LTRIM | 保留指定范围内的元素,其余全部删除 |
| LSET | 通过索引设置列表中元素的值 |
| LINSERT | 在指定元素(pivot)的前/后插入新元素 |

LPUSH

复制代码
lpush users "post1" "post2" "post3" 
#数据存储的格式为"post3" "post2" "post1"

List结构模拟栈

栈的特点是先进后出,只需要push和pop的在同一边就行了(lpush+lpop)

List结构模拟队列

队列的特点是先进先出,只需要push和pop的在相反一边就行了(lpush+rpop)

Set类型命令

Set 类型是一个 无序唯一 的字符串集合

  • 无序

  • 元素不可重复

  • 查找快

命令及语法 功能特征 详细说明
SADD key member ... 向 set 中添加一个或多个元素 如果元素已存在则忽略;返回成功添加的新元素个数。
SREM key member ... 移除 set 中的指定元素 如果元素不存在则忽略;返回成功移除的元素个数。
SCARD key 返回 set 中元素的个数 获取集合的基数(长度);若 key 不存在则返回 0
SISMEMBER key member 判断一个元素是否存在于 set 中 存在返回 1,不存在或 key 不存在返回 0
SMEMBERS key 获取 set 中的所有元素 返回集合中的所有成员(注意:SMEMBERS 后面通常也需要跟对应的 key)。
SINTER key1 key2 求key1、key2的交集
SDIFF key1 key2 求key1与key2的差集
SUNION key1 key2 求key1与key2的并集

SADD

复制代码
SADD fruits "apple" "banana" "orange"

SISMEMBER

复制代码
SISMEMBER fruit "apple"

Sorted set命令类型

sorted set是一个可排序的集合类型,里面每一个元素都有一个score属性,可以根据元素的score属性对元素进行排序

|-----------------------|--------------------------------------------------|
| ZADD key score member | 添加一个或多个元素到 sorted set,如果元素已经存在,则更新其 score 值。 |
| ZREM key member | 删除 sorted set 中的一个指定元素。 |
| ZSCORE key member | 获取 sorted set 中的指定元素的 score 值。 |
| ZRANK key member | 获取 sorted set 中的指定元素的排名(按 score 从低到高排列,索引从 0 开始) |
| ZCARD key | 获取 sorted set 中的元素总个数。 |

相关推荐
用户31693538118312 分钟前
MySQL服务无法启动问题解决全记录
数据库
vivo互联网技术4 小时前
从 10 分钟到 1 秒:ES 深度分页任意跳页的三轮优化实战
服务器·数据库·redis·elasticsearch·深度分页
倔强的石头_19 小时前
《Kingbase护城河》——猎捕慢查询:执行计划的微观解析与索引调优实战
数据库
SelectDB21 小时前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
jiayou642 天前
KingbaseES 表级与列级加密完全指南
数据库·后端
用户3074596982073 天前
Redis 延时队列详解
redis
GBASE3 天前
G术时刻 |GBase 8s数据库事务并发控制之封锁技术介绍(下)
数据库
烤代码的吐司君3 天前
Redis 数据结构 ZSet, BIT, HyperLogLog,Geo 空间数据
redis·后端
xiezhr3 天前
逛GitHub发现了一款免费的带AI功能的数据库管理工具
数据库·ai编程·dba