有道无术,术尚可求,有术无道,止于术。
本系列Redis 版本 7.2.5
源码地址:https://gitee.com/pearl-organization/study-redis-demo
文章目录
- 1. 说明
- 2. 命令手册
- 2.1 Generic
- 2.2 数据类型
- 2.2.1 String
- 2.2.2 Hash
- 2.2.3 List
- 2.2.4 Set
- 2.2.5 Sorted set
- 2.2.6 HyperLogLog
- 2.2.7 Bitmap
- 2.2.8 Geospatial
- 2.2.9 Stream
- 2.3 Management
- 2.3.1 Connection management
- 2.3.2 Cluster management
- 2.3.3 Server managment
- 2.4 Pub/Sub
- 2.5 Scripting and functions
- 2.6 Transactions
- 2.7 Stack
- 2.7.1 Bloom filter
- 2.7.2 Cuckoo filter
- 2.7.3 Count-min sketch
- 2.7.4 JSON
- 2.7.5 Search and query
- 2.7.6 Triggers and functions
- 2.7.7 Auto-suggest
- 2.7.8 T-digest
- 2.7.9 Time series
- 2.7.10 Top-k
1. 说明
提示: 本篇文档会包含所有的命令,但是仅做简单介绍,后续会分篇介绍重要的命令,这里主要起到一个总览导航作用,点击命令会跳转到对应的官方详细介绍。
Redis
命令用于在服务器上执行操作,相当于数据库的 SQL
,其重要性不言而喻。对于开发人员来说,很少使用这些命令直接操作,一般都是通过客户端API
进行调用,但是需要掌握一些重要的命令。
在Redis 中文网中可以查看命令手册,不过因为延迟问题,目前是 Redis 6.2
版本:
打开官方命令手册中可以查看最新的所有命令,在右侧可以根据分组进行过滤:
例如选择 String
后会显示 String
类型所有的命令:
点击具体的命令后,可以查看详情,首先是语法格式:
然后是版本、 时间复杂度(大O
表示法)ACL
、 权限分类:
接着是命令介绍、相关示例:
2. 命令手册
下面已表格的形式,分类简介所有的命令,根据 Redis
官网的分组,命令分为以下两大类:
core
:Redis
stack
:Redis Stack
core
包含以下分组:
Generic
:基础通用- 数据类型:
String
:字符串List
:列表Hash
:哈希Set
:集合Sorted set
:有序集合Stream
:流HyperLogLog
:基数统计Bitmap
:位图Geospatial
:地理空间
- 管理:
Connection management
:连接管理Cluster management
:集群管理Server managment
:服务端管理
Pub/Sub
:发布订阅Scripting and functions
:脚本及函数Transactions
:事务
stack
包含以下分组:
Bloom filter
:布隆过滤器Cuckoo filter
:Count-min sketch
:JSON
:Search and query
:Triggers and functions
:Auto-suggest
:T-digest
:Time series
:Top-k
:
2.1 Generic
Redis
作为 KV
型数据库,基础命令则主要包含了针对 Key
的相关操作,所有命令:
命令 | |
---|---|
COPY | 将存储在 key 处的值复制到目标 key |
DEL | 用于删除 key |
DUMP | 序列化给定 key ,并返回被序列化的值 |
EXISTS | 检查给定 key 是否存在 |
EXPIRE | 为给定 key 设置过期时间 |
EXPIREAT | 用于为 key 设置过期时间,接受的时间参数是 UNIX 时间戳 |
EXPIRETIME | key 将在该时间到期,返回 UNIX 时间戳 |
KEYS | 查找所有符合给定模式的 key |
MIGRATE | 将 key 原子性地从当前实例传送到目标实例的指定数据库上 |
MOVE | 将当前数据库的 key 移动到给定的数据库中 |
OBJECT ENCODING | 查看存储在 key 中的对象的内部编码 |
OBJECT FREQ | 查看存储在 key 中的对象的对数访问频率计数器 |
OBJECT IDLETIME | 查询自上次访问 key 中存储的值以来的时间(以秒为单位) |
OBJECT REFCOUNT | 查看存储在 key 的引用计数 |
PERSIST | 移除 key 的过期时间,key 将持久保持 |
PEXPIRE | 设置 ke y 的过期时间,以毫秒计 |
PEXPIREAT | 设置 key 过期时间的时间戳(unix timestamp ),以毫秒计 |
PEXPIRETIME | PEXPIRETIME 与EXPIRETIME 具有相同的语义,但以毫秒而不是秒为单位返回Unix 的绝对过期时间戳 |
PTTL | 以毫秒为单位返回 key 的剩余的过期时间 |
RANDOMKEY | 从当前数据库中随机返回一个 key |
RENAME | 修改 key 的名称 |
RENAMENX | 仅当 newkey 不存在时,将 key 改名为 newkey |
RESTORE | 反序列化给定的序列化值(由 DUMP 生成),并将它和给定的 key 关联 |
SCAN | 迭代数据库中的 key |
SORT | 对元素进行排序并显示排序结果,不影响这些类型里面存储的数据的排序 |
SORT_RO | SORT 命令的只读变体 |
TOUCH | 更改 key 的最后访问时间 |
TTL | 以秒为单位,返回给定 key 的剩余生存时间 |
TYPE | 返回 key 所储存的值的类型 |
UNLINK | 异步删除一个或多个 key |
WAIT | 用于阻塞客户端,直到之前的写命令已被写到指定数量的副本为止 |
WAITAOF | 用于阻塞客户端,直到之前所有写命令已被同步到 AOF 文件为止 |
2.2 数据类型
2.2.1 String
字符串是 Redis
的基本数据类型,值是字符串类型,所有命令:
命名 | 描述 |
---|---|
APPEND | 将 value 追加到 key 原来的值的末尾 |
DECR | 将 key 中储存的数字值减一 |
DECRBY | 将 key 所储存的值减去给定的减量值 ( decrement ) |
GET | 设置指定 key 的值 |
GETDEL | 获取 key 的值并删除该 key |
GETEX | 获取 key 的值,并可选择设置其过期时间 |
GETRANGE | 返回 key 中字符串值的子字符 |
GETSET | 将给定 key 的值设为 value ,并返回 key 的旧值 |
INCR | 将 key 中储存的数字值增一 |
INCRBY | 将 key 所储存的值加上给定的增量值 ( increment ) |
INCRBYFLOAT | 将 key 所储存的值加上给定的浮点增量值 ( increment ) |
LCS | 实现了最长公共子序列算法,可用于评估字符串的相似程度 |
MGET | 获取所有(一个或多个)给定 key 的值 |
MSET | 同时设置一个或多个 key-value 对 |
MSETNX | 同时设置一个或多个 key-value 对 |
PSETEX | 以毫秒为单位设置 key 的生存时间 |
SET | 设置指定 key 的值 |
SETEX | 设置 key 的值为 value 同时将过期时间设为 seconds |
SETNX | 只有在 key 不存在时设置 key 的值 |
SETRANGE | 从偏移量 offset 开始用 value 覆写给定 key 所储存的字符串值 |
STRLEN | 返回 key 所储存的字符串值的长度 |
SUBSTR | 返回字符串值的子字符串,由偏移量开始和结束(两者都包含在内)决定 |
2.2.2 Hash
哈希散列是 Redis
基本数据类型,值中存储的是 Hash
表,特别适合用于存储对象,所有命令:
命名 | 描述 |
---|---|
HDEL | 用于删除哈希表中一个或多个字段 |
HEXISTS | 用于判断哈希表中字段是否存在 |
HEXPIRE | 设置一个或多个字段的过期时间,秒为单位 |
HEXPIREAT | HEXPIREAT 具有与HEXPIRE 相同的效果和语义,但它没有指定TTL (生存时间)的秒数,而是使用Unix 时间戳(以秒为单位) |
HEXPIRETIME | 给定key 字段将在该时间点过期,返回自Unix 时间戳(以秒为单位) |
HGET | 获取存储在哈希表中指定字段的值 |
HGETALL | 获取在哈希表中指定 key 的所有字段和值 |
HINCRBY | 为存储在 key 中的哈希表指定字段做整数增量运算 |
HINCRBYFLOAT | |
HKEYS | 获取存储在 key 中的哈希表的所有字段 |
HLEN | 获取存储在 key 中的哈希表的字段数量 |
HMGET | 用于获取存储在 key 中的哈希表字段的值 |
HMSET | 用于设置存储在 key 中的哈希表字段的值 |
HPERSIST | 删除 key 字段上现有的过期时间 |
HPEXPIRE | 与HEXPIRE 类似,以毫秒为单位 |
HPEXPIREAT | 与HEXPIRE 类似,使用Unix 时间戳 |
HPEXPIRETIME | 与HEXPIRETIME 具有相同的语义,使用Unix 时间戳(以毫秒为单位) |
HPTTL | 与HTTL 一样,返回具有过期设置的字段的剩余TTL (生存时间),但以毫秒而不是秒为单位 |
HRANDFIELD | 随机获取字段和值 |
HSCAN | 返回的每个元素都是一个元组,每一个元组元素由一个字段和值组成 |
HSET | 为哈希表中的字段赋值 |
HSETNX | 用于为哈希表中不存在的的字段赋值 |
HSTRLEN | 返回字段关联的值的字符串长度,如果键或字段不存在,则返回0 |
HTTL | 返回具有过期设置的字段的剩余TTL (生存时间),秒为单位 |
HVALS | 用于获取哈希表中的所有值 |
2.2.3 List
列表是 Redis
的基本数据类型,值存储的是列表,所有命令:
命名 | 描述 |
---|---|
LMOVE | 删除源列表的第一个或最后一个元素,并移入到目标列表中的第一个或最后一个位置 |
LMPOP | 弹出一个或多个元素 |
BLMOVE | LMOVE 的阻塞变体 |
BLMPOP | LMPOP 的阻塞变体 |
BLPOP | 移出并获取列表的第一个元素 |
BRPOP | 移出并获取列表的最后一个元素 |
BRPOPLPUSH | 从列表中弹出一个值,并将该值插入到另外一个列表中并返回它 |
LINDEX | 通过索引获取列表中的元素 |
LINSERT | 在列表的元素前或者后插入元素 |
LLEN | 获取列表长度 |
LPOP | 移出并获取列表的第一个元素 |
LPOS | |
LPUSH | 将一个或多个值插入到列表头部 |
LPUSHX | 将一个值插入到已存在的列表头部 |
LRANGE | 获取列表指定范围内的元素 |
LREM | 移除列表元素 |
LSET | 通过索引设置列表元素的值 |
LTRIM | 对一个列表进行修剪 |
RPOP | 移除并获取列表最后一个元素 |
RPOPLPUSH | 移除列表的最后一个元素,并将该元素添加到另一个列表并返回 |
RPUSH | 在列表中添加一个或多个值 |
RPUSHX | 为已存在的列表添加值 |
2.2.4 Set
集合是 Redis
的基本数据类型,值存储的是自动排重的集合,常用命令:
命名 | 描述 |
---|---|
SADD | |
SCARD | |
SDIFF | |
SDIFFSTORE | |
SINTER | |
SINTERCARD | |
SINTERSTORE | |
SISMEMBER | |
SMEMBERS | |
SMISMEMBER | |
SMOVE | |
SPOP | |
SRANDMEMBER | |
SREM | |
SSCAN | |
SUNION | |
SUNIONSTORE |
2.2.5 Sorted set
排序集合是 Redis
的基本数据类型,值存储的是自动排重的集合,每个成员都关联了一个评分,常用命令:
命名 | 描述 |
---|---|
BZMPOP | |
BZPОPMAX | |
BZPOPMIN | |
ZADD | |
ZCARD | |
ZCOUNT | |
ZDIFF | |
ZDIFFSTORE | |
ZINCRBY | |
ZINTER | |
ZINTERCARD | |
ZINTERSTORE | |
ZLEXCOUNT | |
ZMPOP | |
ZMSCORE | |
ZPOPMAX | |
ZPOPMIN | |
ZRANDMEMBER | |
ZRANGE | |
ZRANGEBVLEX | |
ZRANGEBYSCORE | |
ZRANGE | |
ZRANGEBYLEX | |
ZRANGEBYSCORE | |
ZRANGESTORE | |
ZRANK | |
ZREM | |
ZREMRANGEBYLEX | |
ZREMRANGEBYRANK | |
ZREMRANGEBYSCORE | |
ZREVRANGE | |
ZREVRANGEBYLEX | |
ZREVRANGEBYSCORE | |
ZREVRANK | |
ZSCAN | |
ZSCORE | |
ZUNION | |
ZUNIONSTORE |
2.2.6 HyperLogLog
基数统计常用命令:
命名 | 描述 |
---|---|
PFADD | |
PFCOUNT | |
PFDEBUG | |
PFMERGE | |
PFSELFTEST |
2.2.7 Bitmap
位图常用命令:
命名 | 描述 |
---|---|
BITCOUNT | |
BITFIELD | |
BITFIELD RO | |
BITOP | |
BITPOS | |
GETBIT | |
SETBIT |
2.2.8 Geospatial
地理空间常用命令:
命名 | 描述 |
---|---|
GEOADD | |
GEODIST | |
GEOHASH | |
GEOPOS | |
GEORADIUS | |
GEORADIUS RO | |
GEORADIUSBYMEMBER | |
GEORADIUSBYMEMBER RO | |
GEOSEARCH | |
GEOSEARCHSTORE |
2.2.9 Stream
流常用命令:
命名 | 描述 |
---|---|
XACK | |
XADD | |
XAUTOCLAIM | |
XCLAIM | |
XDEL | |
XGROUP CREATE | |
XGROUP CREATECONSUMER | |
XGROUP DELCONSUMER | |
XGROUP DESTROY | |
XGROUP SETID | |
XINFO CONSUMERS | |
XINFO GROUPS | |
XINFO STREAM | |
XLEN | |
XPENDING | |
XRANGE | |
XREAD | |
XREADGROUP | |
XREVRANGE | |
XSETID | |
XTRIM |
2.3 Management
2.3.1 Connection management
连接管理命令:
命名 | 描述 |
---|---|
AUTH | |
CLIENT CACHING | |
CLIENT GETNAME | |
CLIENT GETREDIR | |
CLIENT ID | |
CLIENT INFO | |
CLIENT KILL | |
CLIENT LIST | |
CLIENT NO-EVICT | |
CLIENT NO-TOUCH | |
CLIENT PAUSE | |
CLIENT REPLY | |
CLIENT SETINFO | |
CLIENT SETNAME | |
CLIENT TRACKING | |
CLIENT TRACKINGINFO | |
CLIENT UNBLOCK | |
CLIENT UNPAUSE | |
ECHO | |
HELLO | |
PING | |
QUIT | |
RESET | |
SELECT |
2.3.2 Cluster management
集群管理命令:
命名 | 描述 |
---|---|
ASKING | |
CLUSTER ADDSLOTS | |
CLUSTER ADDSLOTSRANGE | |
CLUSTER BUMPEPOCH | |
CLUSTER COUNT-FAILURE | |
REPORTS | |
CLUSTER COUNTKEYSINSLOT | |
CLUSTER DELSLOTS | |
CLUSTER DELSLOTSRANGE | |
CLUSTER FAILOVER | |
CLUSTER FLUSHSLOTS | |
CLUSTER FORGET | |
CLUSTER GETKEYSINSLOT | |
CLUSTER INFO | |
CLUSTER KEYSLOT | |
CLUSTER LINKS | |
CLUSTER MEET | |
CLUSTER MYID | |
CLUSTER MVSHARDID | |
CLUSTER NODES | |
CLUSTER REPLICAS | |
CLUSTER NODES | |
CLUSTER REPLICAS | |
CLUSTER REPLICATE | |
CLUSTER RESET | |
CLUSTER SAVECONFIG | |
CLUSTER SET-CONFIG-EPOCH | |
CLUSTER SETSLOT | |
CLUSTER SHARDS | |
CLUSTER SLAVES | |
CLUSTER SLOTS | |
READONLY | |
READWRITE |
2.3.3 Server managment
服务端管理命令:
命名 | 描述 |
---|---|
ACL CAT | |
ACL DELUSER | |
ACL DRYRUN | |
ACL GENPASS | |
ACL GETUSER | |
ACL LIST | |
ACL LOAD | |
ACL LOG | |
ACL SAVE | |
ACL SETUSER | |
ACL USERS | |
ACL WHOAMI | |
BGREWRITEAOF | |
BGSAVE | |
COMMAND | |
COMMAND COUNT | |
COMMAND DOCS | |
COMMAND GETKEVS | |
COMMAND GETKEYSANDFLAGS | |
COMMAND INFO | |
COMMAND LIST | |
COMMAND LIST | |
CONFIG GET | |
CONFIG RESETSTAT | |
CONFIG REWRITE | |
CONFIG SET | |
DBSIZE | |
FAILOVER | |
FLUSHALL | |
FLUSHDB | |
INFO | |
LASTSAVE | |
LATENCY DOCTOR | |
LATENCY GRAPH | |
LATENCY HISTOGRAM | |
LATENCY HISTORY | |
LATENCY LATEST | |
LATENCY RESET | |
LOLWUT | |
MEMORY DOCTOR | |
MEMORY MALLOC-STATS | |
MEMORY PURGE | |
MEMORY STATS | |
MEMORY USAGE | |
MEMORY USAGE | |
MODULE LIST | |
MODULE LOAD | |
MODULE LOADEX | |
MODULE UNLOAD | |
MONITOR | |
PSYNC | |
REPLCONF | |
REPLICAOF | |
RESTORE-ASKING | |
ROLE | |
SAVE | |
SHUTDOWN | |
SLAVEOF | |
SLOWLOG GET | |
SLOWLOG LEN | |
SLOWLOG RESET | |
SWAPDB | |
SYNC | |
TIME |
2.4 Pub/Sub
发布订阅命令:
命名 | 描述 |
---|---|
PSUBSCRIBE | |
PUBLISH | |
PUBSUB CHANNELS | |
PUBSUB NUMPAT | |
PUBSUB NUMSUB | |
PUBSUB SHARDCHANNELS | |
PUBSUB SHARDNUMSUB | |
PUNSUBSCRIBE | |
SPUBLISH | |
SSUBSCRIBE | |
SUBSCRIBE | |
SUNSUBSCRIBE | |
UNSUBSCRIBE |
2.5 Scripting and functions
脚本及函数命令:
命名 | 描述 |
---|---|
EVAL | |
EVAL_RO | |
EVALSHA | |
EVALSHA_RO | |
FCALL | |
FCALL_RO | |
FUNCTION DELETE | |
FUNCTION DUMP | |
FUNCTION FLUSH | |
FUNCTION KILL | |
FUNCTION LIST | |
FUNCTION LOAD | |
FUNCTION RESTORE | |
FUNCTION STATS | |
SCRIPT DEBUG | |
SCRIPT FLUSH | |
SCRIPT KILL | |
SCRIPT LOAD |
2.6 Transactions
事务命令:
命名 | 描述 |
---|---|
DISCARD | |
EXEC | |
MULTI | |
UNWATCH | |
WATCH |
2.7 Stack
2.7.1 Bloom filter
布隆过滤器命令:
命名 | 描述 |
---|---|
BF.ADD | |
BF.CARD | |
BF.EXISTS | |
BF.INFO | |
BF.INSERT | |
BF.LOADCHUNK | |
BF.MADD | |
BF.MEXISTS | |
BF.RESERVE | |
BF.SCANDUMP |
2.7.2 Cuckoo filter
命名 | 描述 |
---|---|
CF.ADD | |
CF.ADDNX | |
CF.COUNT | |
CF.DEL | |
CF.EXISTS | |
CF.INFO | |
CF.INSERT | |
CF.INSERTNX | |
CF.LOADCHUNK | |
CF.MEXISTS | |
CF.RESERVE | |
CF.SCANDUMP |
2.7.3 Count-min sketch
命名 | 描述 |
---|---|
CMS.INCRBY | |
CMS. INFO | |
CMS.INITBYDIM | |
CMS.INITBVPROB | |
CMS .MERGE | |
CMS.QUERY |
2.7.4 JSON
命名 | 描述 |
---|---|
JSON.ARRAPPEND | |
JSON.ARRINDEX | |
JSON.ARRINSERT | |
JSON.ARRLEN | |
JSON.ARRPOP | |
JSON.ARRTRIM | |
JSON.CLEAR | |
JSON.DEBUG | |
JSON.DEBUG MEMORV | |
JSON.DEL | |
JSON.FORGET | |
JSON.GET | |
JSON.MERGE | |
JSON.MGET | |
JSON.MSET | |
JSON.NUMINCRBY | |
JSON.NUMMULTBV | |
JSON.OBJKEYS | |
JSON.OBJLEN | |
JSON.RESP | |
JSON.SET |
JSON.STRAPPEND
JSON.STRLEN
JSON.TOGGLE
JSON.TYPE
2.7.5 Search and query
命名 | 描述 |
---|---|
FT._LIST | |
FT .AGGREGATE | |
FT.ALIASADD | |
FT .ALIASDEL | |
FT.ALIASUPDATE | |
FT .ALTER | |
FT.CONFIG GET | |
FT.CONFIG SET | |
FT .CREATE | |
FT.CURSOR DEL | |
FT.CURSOR READ | |
FT .DICTADD | |
FT .DICTDEL | |
FT .DICTDUMP | |
FT .DROPINDEX | |
FT .EXPLAIN | |
FT.EXPLAINCLI | |
FT .INFO | |
FT.PROFILE | |
FT .SEARCH | |
FT .SPELLCHECK | |
FT .SYNDUMP | |
FT . SYNUPDATE | |
FT.TAGVALS |
2.7.6 Triggers and functions
命名 | 描述 |
---|---|
TFCALL | |
TFCALLASYNC | |
TFUNCTION DELETE | |
TFUNCTION LIST | |
TFUNCTION LOAD |
2.7.7 Auto-suggest
命名 | 描述 |
---|---|
FT.SUGADD | |
FT.SUGDEL | |
FT.SUGGET | |
FT.SUGLEN |
2.7.8 T-digest
命名 | 描述 |
---|---|
TDIGEST.ADD | |
TDIGEST .BYRANK | |
TDIGEST .BYREVRANK | |
TDIGEST .CDF | |
TDIGEST.CREATE | |
TDIGEST.INFO | |
TDIGEST .MAX | |
TDIGEST .MERGE | |
TDIGEST .MIN | |
TDIGEST.QUANTILE | |
TDIGEST .RANK | |
TDIGEST.RESET | |
TDIGEST .REVRANK | |
TDIGEST.TRIMMED MEAN |
2.7.9 Time series
命名 | 描述 |
---|---|
TS.ADD | |
TS.ALTER | |
TS.CREATE | |
TS.CREATERULE | |
TS.DECRBY | |
TS.DEL | |
TS.DELETERULE | |
TS.GET | |
TS.INCRBY | |
TS.INFO | |
TS.MADD | |
TS.MGET | |
TS.MRANGE | |
TS.MREVRANGE | |
TS.QUERYINDEX | |
TS.RANGE | |
TS.REVRANGE |
2.7.10 Top-k
命名 | 描述 |
---|---|
TOPK.ADD | |
TOPK.COUNT | |
TOPK.INCRBY | |
TOPK.INFO | |
TOPK.LIST | |
TOPK.QUERY | |
TOPK.RESERVE |