Redis常用命令--Keys
Redis是一个key-value型的数据库。
所以在Redis也提供了很多操作key的命令,大概有22个。
EXISTS key [key ...]:查询一个key是否存在,时间复杂度为O(1),存在返回1,否则返回0
DEL key [key ...]:删除指定的key(一个或多个),时间复杂度O(N),N为要删除的key的个数
DUMP key:序列化给定key,并返回被序列化的值,使用RESTORE命令可以把这个值反序列化为Redis的键。
RESTORE key ttl serialized-value [REPLACE]:反序列化给定的序列化值,并将它和给定的key关联。
127.0.0.1:6379> exists name age (integer) 0 127.0.0.1:6379> set name zhangsan OK 127.0.0.1:6379> exists name age (integer) 1 127.0.0.1:6379> set age 18 OK 127.0.0.1:6379> exists name age (integer) 2 127.0.0.1:6379> del name (integer) 1 127.0.0.1:6379> dump age "\x00\xc0\x12\b\x00\xf4\xf4\x92\xf0\xbc8\xce\x13" 127.0.0.1:6379> del age (integer) 1 127.0.0.1:6379> exists name age (integer) 0 127.0.0.1:6379> restore name2 0 "\x00\xc0\x12\b\x00\xf4\xf4\x92\xf0\xbc8\xce\x13" OK 127.0.0.1:6379> get name2 "18" 127.0.0.1:6379>
KEYS pattern:查找所有匹配给定的模式的键,
*:匹配0个或多个字符
?:匹配一个字符
[a,b。。。]:匹配其中的某个字符
特殊符号使用'\'隔开
时间复杂度为O(N),N为数据库中key的数量
RENAME key newkey:将一个key重命名,时间复杂度O(1)。
当key和newkey相同或者key不存在的时候,返回一个错误,当newkey已经存在时覆盖
RENAMENX key newkey:重命名一个key,新的key必须是不存在的key,时间复杂度O(1)。
RANDOMKEY :从当前数据库中随机返回一的key,时间复杂度O(1)。
TYPE key:获取key的存储类型,时间复杂度O(1)。
127.0.0.1:6379> keys * (empty list or set) 127.0.0.1:6379> mset name zhangsan age 22 address shanghai OK 127.0.0.1:6379> mset nomn lisi OK 127.0.0.1:6379> mset nime wangwu OK 127.0.0.1:6379> keys * 1) "nomn" 2) "name" 3) "age" 4) "address" 5) "nime" 127.0.0.1:6379> keys n?me 1) "name" 2) "nime" 127.0.0.1:6379> keys n[ai]me 1) "name" 2) "nime" 127.0.0.1:6379> rename nomn nome OK 127.0.0.1:6379> renamenx nome name (integer) 0 127.0.0.1:6379> renamenx nome name2 (integer) 1 127.0.0.1:6379> randomkey "nime" 127.0.0.1:6379> randomkey "address" 127.0.0.1:6379> type nime string 127.0.0.1:6379> type name string 127.0.0.1:6379>
EXPIRE key seconds:设置一个key的过期的秒数,当过期时,会自动删除。时间复杂度O(1)。
PEXPIRE key milliseconds:设置key的有效时间以毫秒为单位,时间复杂度O(1)。
TTL key:获取key的有效时间(单位:秒),时间复杂度O(1)。
PTTL key:获取key的有效毫秒数,时间复杂度O(1)。
EXPIREAT key timestamp:设置一个UNIX时间戳的过期时间
PEXPIREAT key milliseconds-timestamp:设置key的到期UNIX时间戳以毫秒为单位
PERSIST key:移除key的过期时间
127.0.0.1:6379> set name lisi OK 127.0.0.1:6379> ttl name (integer) -1 127.0.0.1:6379> pttl name (integer) -1 127.0.0.1:6379> expire name 20 (integer) 1 127.0.0.1:6379> ttl name (integer) 17 127.0.0.1:6379> expire name 20 (integer) 1 127.0.0.1:6379> pttl name (integer) 12234 127.0.0.1:6379> persist name (integer) 0 127.0.0.1:6379> get name (nil) 127.0.0.1:6379> set name lisi OK 127.0.0.1:6379> expire name 30 (integer) 1 127.0.0.1:6379> pttl name (integer) 21299 127.0.0.1:6379> persist name (integer) 1 127.0.0.1:6379> ttl name (integer) -1 127.0.0.1:6379> get name "lisi" 127.0.0.1:6379>
SCAN cursor [MATCH pattern] [COUNT count]:增量迭代key
MOVE key db:移动一个key到另一个数据库
MIGRATE host port key destination-db timeout [COPY] [REPLACE]:原子性的将key从redis的一个实例移到另一个实例
OBJECT subcommand [arguments [arguments ...]]:检查内部的再分配对象
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]:对队列、集合、有序集合排序
WAIT numslaves timeout:Wait for the synchronous replication of all the write commands sent in the context of the current connection