Redis命令参考

139 阅读13分钟

Key(键)

操作命令语句含义
deldel key[key...]删除给定的一个或多个key
dumpdump key序列化给定的key,并返回被序列化的值
existsexists key检查给定的key是否存在
expireexpire key seconds为给定key设置生存时间,当key过期时(生存时间为0),它会被自动删除
expireatexpireat key timestamp作用和expire类似,都用于为key设置生存时间。不同在于expireat命令接受的时间参数是UNIX时间戳(unix timestamp)
keyskeys pattern查找所有符合给定模式pattern的key
migratemigrate host port key destination-db timeout [COPY] [REPLACE]将key原子性地从当前实例传送到目标实例的指定数据库上,一旦传送成功,key保证会出现在目标实例上,而当前实例上的 key会被删除
movemove key db将当前数据库的key移动到给定数据库db中
objectobject subcommand [arguments [arguments]]object命令允许从内部查看给定 key 的 Redis 对象
persistpersist key移除给定 key 的生存时间,将它从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key )
pexpirepexpire key milliseconds与expire命令的作用类似,但它以毫秒为单位设置 key的生存时间,而不像 expire 以秒为单位
pexpireatpexpireat key milliseconds-timestamp与expireat命令类似,但它以毫秒为单位设置 key的过期 unix 时间戳,而不是像 expireat以秒为单位
pttlpttl key与ttl命令类似,但它以毫秒为单位返回key的剩余生存时间,而不像 ttl 以秒为单位
randomkeyrandomkey从当前数据库中随机返回(不删除)一个 key
renamerename key newkey将 key 改名为 newkey
renamenxrenamenx key newkey当且仅当 newkey 不存在时,将 key 改名为 newkey
restorerestore key ttl serialized-value反序列化给定的序列化值,并将它和给定的 key 关联
sortsort key排序
ttlttl key以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)
typetype key返回 key 所储存的值的类型
scanscan cursor [MATCH pattern] [COUNT count]迭代当前数据库中的数据库键

String(字符串)

操作命令语句含义
appendappend key value如果key存在,将 value 追加到 key原来的值的末尾。若不存在,就简单地将 key设为 value
bitcountbitcount key [start] [end]计算给定字符串中,被设置为 1 的比特位的数量
bitopbitop operation destkey key [key...]对一个或多个保存二进制位的字符串key 进行位元操作,并将结果保存到 destkey 上
decrdecr key将key中储存的数字值减一
decrbydecrby key decrement将 key所储存的值减去减量 decrement
getget key返回 key 所关联的字符串值
getbitgetbit key offset对 key 所储存的字符串值,获取指定偏移量上的位(bit)
getrangegetrange key start end返回 key 中字符串值的子字符串,字符串的截取范围包括 start和 end在内)
getsetgetset key value将给定 key 的值设为 value,并返回 key的旧值
incrincr key将 key 中储存的数字值增一
incrbyincrby key increment将 key 所储存的值加上增量 increment
incrbyfloatincrbyfloat key increment为 key 中所储存的值加上浮点数增量 increment
mgetmget key [key...]返回所有(一个或多个)给定 key 的值
msetmset key value [key value...]同时设置一个或多个 key-value 对
msetnxmsetnx key value [key value...]同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在
psetnxpsetnx key milliseconds value与setex 命令相似,但它以毫秒为单位设置 key 的生存时间,而不像setex 以秒为单位
setset key value [EX seconds] [PX milliseconds] [NX/XX]将字符串值 value 关联到 key
setbitsetbit key offset value对 key所储存的字符串值,设置或清除指定偏移量上的位(bit)
setexsetex key seconds value将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)
setnxsetnx key value将 key 的值设为 value ,当且仅当 key 不存在
setrangesetrange key offset value用 value 参数覆写给定 key所储存的字符串值,从偏移量 offset 开始
strlenstrlen key返回 key 所储存的字符串值的长度

Hash(哈希表)

操作命令语句含义
hdelhdel key field [field...]删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略
hexistshexists key field查看哈希表 key 中,给定域 field 是否存在
hgethget key field返回哈希表 key 中给定域 field 的值
hgetallhgetall key返回哈希表key 中,所有的域和值
hincrbyhincrby key field increment为哈希表 key 中的域 field 的值加上增量 increment
hincrbyfloathincrbyfloat key field increment为哈希表 key 中的域 field 加上浮点数增量 increment
hkeyshkeys key返回哈希表 key 中的所有域
hlenhlen key返回哈希表 key 中域的数量
hmgethmget key field [field...]返回哈希表 key 中,一个或多个给定域的值
hmsethmset key field value [field value...]同时将多个 field-value(域-值)对设置到哈希表 key中。此命令会覆盖哈希表中已存在的域
hsethset key field value将哈希表 key 中的域 field 的值设为 value
hsetnxhsetnx key field value将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在
hvalshvals key返回哈希表 key 中所有域的值
hscanhscan key cursor [MATCH pattern] [COUNT count]迭代哈希键中的键值对

List(哈希表)

操作命令语句含义
blpopblpop key [key...] timeout移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
brpopbrpop key [key...] timeout移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
brpoplpush
lindexlindex key index返回列表 key 中,下标为 index 的元素
linsertlinsert key BEFORE/AFTER pivot value将值 value 插入到列表 key 当中,位于值 pivot 之前或之后
llenllen key返回列表 key 的长度
lpoplpop key移除并返回列表 key 的头元素
lpushlpush key value [value...]将一个或多个值 value 插入到列表 key 的表头
lpushxlpushx key value将值 value 插入到列表 key 的表头,当且仅当 key 存在并且是一个列表
lrangelrange key start stop返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定
lremlrem key count value根据参数 count 的值,移除列表中与参数 value 相等的元素
rpoprpop key移除并返回列表 key 的尾元素
rpoplpush
rpushrpush key value [value ...]将一个或多个值 value 插入到列表 key 的表尾(最右边)
rpushxrpushx key value将值 value 插入到列表 key 的表尾,当且仅当 key 存在并且是一个列表

Set(集合)

操作命令语句含义
saddsadd key member [member ...]将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略
scardscard key返回集合 key 的基数(集合中元素的数量)
sdiffsdiff key [key ...]返回一个集合的全部成员,该集合是所有给定集合之间的差集。不存在的 key 被视为空集
sdiffstoresdiffstore destination key [key ...]作用与 sdiff 类似,但它将结果保存到 destination 集合,而不是简单地返回结果集。若destination 集合已存在,则覆盖
sintersinter key [key ...]返回一个集合的全部成员,该集合是所有给定集合的交集。不存在的 key 被视为空集
sinterstoresinterstore destination key [key ...]类似于 SINTER命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。若destination集合已经存在,则将其覆盖
sismembersismember key member判断 member 元素是否集合 key 的成员
smemberssmembers key返回集合 key 中的所有成员
smovesmove source destination member将 member 元素从 source 集合移动到 destination 集合
spopspop key移除并返回集合中的一个随机元素
srandmembersrandmember key [count]如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素
sremsrem key member [member ...]移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略
sunionsunion key [key ...]返回一个集合的全部成员,该集合是所有给定集合的并集
sunionstoresunionstore destination key [key...]类似于sunion 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。若destination已存在,则将其覆盖
sscansscan key cursor [MATCH pattern] [COUNT count]迭代集合键中的元素

SortedSet(有序集合)

操作命令语句含义
zaddzadd key score member [[score member] [score member] ...]将一个或多个 member 元素及其 score 值加入到有序集 key 当中。如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值
zcardzcard key返回有序集 key 的基数
zcountzcount key min max返回有序集 key 中,score值在 min 和 max 之间(min,max包括在内)的成员的数量
zincrbyzincrby key increment member为有序集 key 的成员 member 的 score 值加上增量 increment
zrangezrange key start stop [WITHSCORES]返回有序集 key中,指定区间内的成员。其中成员的位置按 score 值递增来排序
zrangebyscorezrangebyscore key min max [WITHSCORES] [LIMIT offset count]返回有序集 key中,所有score值介于 min 和 max 之间(包括min、max在内)的成员。有序集成员按 score 值递增排列
zrankzrank key member返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递增排列
zremzrem key member [member ...]移除有序集 key 中的一个或多个成员
zremrangebyrankzremrangebyrank key start stop移除有序集 key 中,指定排名区间内的所有成员(start、stop包含在内)
zremrangebyscorezremrangebyscore key min max移除有序集 key 中,所有 score 值介于 min 和 max 之间的成员
zrevrangezrevrange key start stop [WITHSCORES]返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递减排列
zrevrangebyscorezrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]返回有序集 key 中,score 值介于 max 和 min 之间(包括min、max在内)的所有的成员。有序集成员按 score 值递减排列
zrevrankzrevrank key member返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递减排序
zscorezscore key member返回有序集 key 中,成员 member 的 score 值
zunionstorezunionstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM/MIN/MAX]计算给定的一个或多个有序集的并集,其中给定 key 的数量必须以 numkeys 参数指定,并将该并集(结果集)储存到 destination
zinterstorezinterstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM/MIN/MAX]计算给定的一个或多个有序集的交集,其中给定 key 的数量必须以 numkeys 参数指定,并将该交集(结果集)储存到 destination
zscanzscan key cursor [MATCH pattern] [COUNT count]迭代有序集合中的元素(包括元素成员和元素分值)

Pub/Sub(发布/订阅)

操作命令语句含义
psubscribepsubscribe pattern [pattern ...]订阅一个或多个符合给定模式的频道
publishpublish channel message将信息 message 发送到指定的频道 channel
pubsubpubsub [argument [argument ...]]pubsub 是一个查看订阅与发布系统状态的内省命令
punsubscribepunsubscribe [pattern [pattern ...]]指示客户端退订所有给定模式
subscribesubscribe channel [channel ...]订阅给定的一个或多个频道的信息
unsubscribeunsubscribe [channel [channel ...]]指示客户端退订给定的频道

Transaction(事务)

操作命令语句含义
discarddiscard取消事务,放弃执行事务块内的所有命令
execexec执行所有事务块内的命令
multimulti标记一个事务块的开始
unwatchunwatch取消 watch 命令对所有 key 的监视
watchwatch key [key ...]监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断

Script(脚本)

操作命令语句含义
eval
evalsha
script exists
script flush
script kill
script load

Connection(连接)

操作命令语句含义
autoauto password通过设置配置文件中requirepass 项的值(使用命令 CONFIG SET requirepass password),可以使用密码来保护 Redis 服务器
echoecho message打印一个特定的信息 message ,测试时使用
pingping使用客户端向 Redis 服务器发送一个 PING,如果服务器运作正常的话,会返回一个PONG。通常用于测试与服务器的连接是否仍然生效,或者用于测量延迟值
quitquit请求服务器关闭与当前客户端的连接。一旦所有等待中的回复(如果有的话)顺利写入到客户端,连接就会被关闭
selectselect index切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。默认使用 0 号数据库

Server(服务器)

操作命令语句含义
bgrewriteaofbgrewriteaof用于手动触发重写操作
bgsavebgsave在后台异步保存当前数据库的数据到磁盘
client getnameclient name返回client name 命令为连接设置的名字
client killclient kill ip:port关闭地址为 ip:port 的客户端
client listclient list以人类可读的格式,返回所有连接到服务器的客户端信息和统计数据
client setnameclient setname connection-name为当前连接分配一个名字
config getconfig get parameter用于取得运行中的 Redis 服务器的配置参数
config resetstatconfig resetstat重置 info 命令中的某些统计数据
config rewriteconfig rewrite对启动 Redis 服务器时所指定的 redis.conf 文件进行改写
config setconfig set parameter value可以动态地调整 Redis 服务器的配置而无须重启
besizebesize返回当前数据库的 key 的数量
debug objectdebug object keydebug object是一个调试命令,它不应被客户端所使用。查看object命令获取更多信息
debug segfaultdebug segfault执行一个不合法的内存访问从而让 Redis 崩溃,仅在开发时用于 BUG 模拟
flushallflushall清空整个 Redis 服务器的数据(删除所有数据库的所有 key )
flushdbflushdb清空当前数据库中的所有 key
infoinfo [section]以一种易于解释且易于阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。通过给定可选的参数 section ,可以让命令只返回某一部分的信息
lastsavelastsave返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示
monitormonitor实时打印出 Redis 服务器接收到的命令,调试用
psyncpsync <MASTER_RUN_ID> 用于复制功能的内部命令
savesave执行一个同步保存操作,将当前 Redis 实例的所有数据快照以 RDB 文件的形式保存到硬盘
shutdownshutdown停止、关闭
slaveofslaveof host portslaveof命令用于在 Redis 运行时动态地修改复制功能的行为
slowlogslowlog是用来记录查询执行时间的日志系统
syncsync用于复制功能(replication)的内部命令
timetime返回当前服务器时间

参考:Redis 命令参考 — Redis 命令参考 (redisfans.com)