发布/订阅pub/sub
命令格式 | 时间复杂度 | 命令描述 | 返回值 |
publish channel message | O(N) | 将信息message发送到指定的频道channel | 收到信息message的订阅者数量 |
subscribe channel [channel ...] | O(N) | 订阅给定频道的信息 |
|
psubscribe pattern [pattern ...] | O(N) | 订阅符合给定模式的频道 |
|
unsubscribe channel [channel ...] | O(N) | 取消订阅给定的频道 |
|
punsubscribe pattern [pattern ...] | O(N) | 取消订阅符合给定模式的频道 |
|
事务transaction
命令格式 | 时间复杂度 | 命令描述 | 返回值 |
watch key [key ...] | O(1) | 监视一个或多个key,如果在事务执行之前这个key被其他命令所改动,那么事务将被打断 | 返回总是OK |
unwatch | O(1) | 取消watch命令对所有key的监视 | 返回总是OK |
multi | O(1) | 标记一个事务块的开始。事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由exec命令原子性地执行 | 返回总是OK |
discard | O(1) | 取消事务,放弃执行事务块内的所有命令 | 返回总是OK |
exec | O(N) | 执行所有事务块内的命令 | 当操作被打断时,返回空值 nil。 |
脚本script
命令格式 | 时间复杂度 | 命令描述 | 返回值 |
eval script numkeys key [key ...] arg [arg ...] | 视情况而定 | 执行一个lua脚本 |
|
evalsha sha1 numkeys key [key ...] arg [arg ...] | 视情况而定 | 根据给定的shal校验码,对缓存在服务器中的脚本进行求值。 将脚本缓存到服务器的操作可以通过script load 命令进行。这个命令的其他地方,比如参数的传入方式,都和eval命令一样。 |
|
script exists script [script ...] | O(N) | 检查脚本是否存在于缓存中,并不理解执行 | 1存在,0不存在 |
script flush | O(N) | 删除脚本缓存中的所有脚本 | 总是返回 OK |
script kill | O(1) | 终止目前在执行的脚本,当且仅当这个脚本没有执行过任何写操作时,这个命令才生效 | 成功OK,失败:错误码 |
script load script | O(N) | 加载指定的lua脚本到脚本缓存中 | 给定script的sha1校验和 |
连接connection
命令格式 | 命令描述 | 返回值 |
auth password | 服务器验证给定的密码 通过config get requirepass 来获取密码 |
|
ping | 检测服务器是否正在运行 | 成功返回pong |
select index | 切换到给定的数据库,默认使用0号数据库 |
|
echo message | 打印给定的字符串,测试时使用 |
|
quit | 关闭当前连接 |
|
服务器server
命令格式 | 时间复杂度 | 命令描述 | 返回值 |
time | O(1) | 返回当前服务器时间 | 第一个字符串是当前的时间戳 第二个字符串是当前第一秒已经逝去的微秒数 |
dbsize | O(1) | 返回当前数据库的key的数量 | 数量 |
bgrewriteaof | O(N) | 在后台异步重写aof文件以反应当前数据库的状态 | 反馈信息 |
bgsave | O(N) | 在后台异步保存当前数据库的数据到磁盘。 客户端可以通过 LASTSAVE 命令查看相关信息,判断 BGSAVE 命令是否执行成功。 | 反馈信息 |
save | O(N) | 同步保存当前数据库的数据到磁盘 | 保存成功时返回 OK |
lastsave | O(1) | 返回最近一次redis成功将数据保存到磁盘上的时间戳 | 一个unix时间戳 |
slaveof host port | O(n) O(1) | 在redis运行时动态的修改复制(replication)功能的行为。 可以将当前服务器转变为指定服务器的从属服务器。 如果当前服务器已经是某个主服务器的从属服务器,那么执行 slaveof host port 将使当前服务器停止对旧主服务器的同步,丢弃旧数据集,转而开始对新主服务器进行同步。O(n) 如果,对一个从属服务器执行命令 slaveof no one 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。O(1) | 总是返回 OK |
flushall |
| 清空整个redis服务器的数据,(删除所有数据库的所有key) | 总是返回 OK |
flushdb | O(1) | 清空当前数据库中的所有key | 总是返回 OK |
shutdown |
| 停止所有客户端 | 执行失败时返回错误。 执行成功时不返回任何信息,服务器和客户端的连接断开,客户端自动退出。 |
slowlog subcommand [argument] |
| 管理redis的慢查询日志 |
|
info [section] | O(1) | 返回redis服务器的各种信息 |
|
config get parameter |
| 获取配置参数的值 |
|
config set parameter value |
| 配置参数设定为指定值 | 当设置成功时返回 OK ,否则返回一个错误。 |
config resetstat | O(1) | 重置info命令中的某些统计数据 | 总是返回 OK |
debug object key | O(1) | 获取key的调试信息 |
|
debug segfault |
| 执行一个不合法的内存访问,来是redis服务器崩溃,仅在开发是用于debug模拟 |
|
monitor |
| 实时打印出redis服务器接收到的命令,调试用 | 总是返回 OK |
sync |
| 用于复制功能(replication)的内部命令 |
|
client list | O(N) | 获取客户端连接到服务器的连接列表 |
|
client kill ip:port | O(N) | 关闭地址为ip:port的客户端 | 当指定的客户端存在,且被成功关闭时,返回 OK 。 |
client setname connection-name | O(1) | 为当前连接分配一个名字 | 设置成功时返回 OK 。 |
client getname | O(1) | 返回client setname命令为连接设置名字 | 如果连接没有设置名字,那么返回空白回复; 如果有设置名字,那么返回名字。 |
获取,设置,控制客户端信息 | client list,client getname; clent kill;client setname,shutdown |
获取设置服务器信息 | info,config get,time,dbsize config set,config resetstat, |
调试 | debug object,debug setfault,monitor |
持久化 | bgrewriteaof,bgsave,save,lastsave, |
删除数据库键 | flushall,flushdb |
控制主从服务器 | slaveof |