Redis的Key命令
写完了Redis的数据结构,接着我们看下Redis的Key相关操作:
命令 | 描述 | 用法 |
---|---|---|
DEL | (1)删除给定的一个或多个key(2)不存在的Key将被忽略 | DEL key [key …] |
EXISTS | (1)检查给定key是否存在 | EXISTS key |
EXPIRE | (1)为给定key设置生存时间,key过期时它会被自动删除(2)对一个已经指定生存时间的Key设置执行EXPIRE,新的值会代替旧的值 | EXPIRE key seconds |
EXPIREAT | (1)同EXPIRE,但此命令指定的是UNIX时间戳,单位为秒 | EXPIRE key timestamp |
KEYS | (1)查找所有符合给定模式pattern的key,下面举一下例子(2)KEYS 匹配所有key(3)KEYS h?llo匹配hello、hallo、hxllo等(4)KEYS hllo匹配hllo、heeeeello等(5)KEYS h[ae]llo匹配hello和hallo(6)特殊符号想当做查找内容经的使用\ | KEYS pattern |
MIGRATE | (1)原子性地将key从当前实例传送到目标实例指定的数据库上(2)原数据库Key删除,新数据库Key增加(3)阻塞进行迁移的两个实例,直到迁移成功、迁移失败、等待超时三个之一发生 | MIGRATE host port key destination-db timeout [COPY] [REPLACE] |
MOVE | (1)将当前数据库的key移动到给定数据库的db中(2)执行成功的条件为当前数据库有key,给定数据库没有key | MOVE key db |
PERSIST | (1)移除给定key的生存时间,将key变为持久的 | PERSIST key |
RANDOMKEY | (1)从当前数据库随机返回且不删除一个key, | RANDOMKEY |
RENAME | (1)将key改名为newkey(2)当key和newkey相同或key不存在,报错(3)newkey已存在,RENAME将覆盖旧值 | RENAME key newkey |
TTL | (1)以秒为单位,返回给定的key剩余生存时间 | TTL key |
PTTL | (1)以毫秒为单位,返回给定的key剩余生存时间 | PTTL key |
TYPE | (1)返回key锁存储的值的类型 | TYPE key |
这里特别注意KEYS命令,虽然KEYS命令速度非常快,但是当Redis中百万、千万甚至过亿数据的时候,扫描所有Redis的Key,速度仍然会下降,由于Redis是单线程模型,这将导致后面的命令阻塞直到KEYS命令执行完。
因此当Redis中存储的数据达到了一定量级(经验值从10W开始就值得注意了)的时候,必须警惕KEYS造成Redis整体性能下降。
系统相关命令
接着介绍一下部分系统相关命令:
命令 | 描述 | 用法 |
---|---|---|
BGREWRITEAOF | (1)手动触发AOF重写操作,用于减小AOF文件体积 | BGREWRITEAOF |
BGSAVE | (1)后台异步保存当前数据库的数据到磁盘 | BGSAVE |
CLIENT KILL | (1)关闭地址为ip:port的客户端(2)由于Redis为单线程设计,因此当当前命令执行完之后才会关闭客户端 | CLIENT KILL ip:port |
CLIENT LIST | (1)以可读的格式,返回所有连接到服务器的客户端信息和统计数据 | CLIENT LIST |
CONFIG GET | (1)取得运行中的Redis服务器配置参数(2)支持* | CONFIG GET parameter |
CONFIG RESETSTAT | (1)重置INFO命令中的某些统计数据,例如Keyspace hits、Keyspace misses等 | CONFIG RESETSTAT |
CONFIG REWRITE | (1)对启动Redis时指定的redis.conf文件进行改写 | CONFIG REWRITE |
CONFIG SET | (1)动态调整Redis服务器的配置而无需重启(2)修改后的配置立即生效 | CONFIG SET parameter value |
SELECT | (1)切换到指定数据库,数据库索引index用数字指定,以0作为起始索引值(2)默认使用0号数据库 | SELECT index |
DBSIZE | (1)返回当前数据库的Key的数量 | DBSIZE |
DEBUG OBJECT | (1)这是一个调试命令,不应当被客户端使用(2)key存在时返回有关信息,key不存在时返回错误 | DEBUG OBJECT key |
FLUSHALL | (1)清空整个Redis服务器的数据 | FLUSHALL |
FLUSHDB | (1)清空当前数据库中的所有数据 | FLUSHDB |
INFO | (1)以一种易于解释且易于阅读的格式,返回Redis服务器的各种信息和统计数值(2)通过给定可选参数section,可以让命令只返回某一部分信息 | INFO [section] |
LASTSAVE | (1)返回最近一次Redis成功将数据保存到磁盘上的时间,以UNIX时间戳格式表示 | LASTSAVE |
MONITOR | (1)实时打印出Redis服务器接收到的命令,调试用 | MONITOR |
SHUTDOWN | (1)停止所有客户端(2)如果至少有一个保存点在等待,执行SAVE命令(3)如果AOF选项被打开,更新AOF文件(4)关闭Redis服务器 | SHUTDOWN [SAVE|NOSAVE] |