本文共 7145 字,大约阅读时间需要 23 分钟。
Redis Keys 命令用于查找所有符合给定模式 pattern 的 key 。。
基本语法
redis KEYS 命令基本语法如下:
redis 127.0.0.1:6379> KEYS PATTERN
可用版本
>= 1.0.0
返回值
符合给定模式的 key 列表 (Array)。
实例
首先创建一些 key,并赋上对应值:
redis 127.0.0.1:6379> SET w3c1 redisOKredis 127.0.0.1:6379> SET w3c2 mysqlOKredis 127.0.0.1:6379> SET w3c3 mongodbOK
查看以w3c
开头的所有key
127.0.0.1:6379[2]> keys w3c*1) "w3c1"2) "w3c3"3) "w3c2"
获取 redis 中所有的 key 可用使用 * 。
127.0.0.1:6379[2]> keys *1) "w3c1"2) "w3c3"3) "w3c2"
Redis Expireat 命令用于以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。key 过期后将不再可用。
语法
redis Expireat 命令基本语法如下:
redis 127.0.0.1:6379> Expireat KEY_NAME TIME_IN_UNIX_TIMESTAMP
返回值
设置成功返回 1 。
当 key 不存在或者不能为 key 设置过期时间时返回 0 。
实例
首先创建一个 key 并赋值:
127.0.0.1:6379[2]> set name zhangsan
为 key 设置过期时间:
######################################################################### EXPIREAT 单位为毫秒127.0.0.1:6379[2]> EXPIREAT name 10 # 以毫秒为单位 设置成功返回1 (integer) 1127.0.0.1:6379[2]> ttl name # ttl key 可以查看这个key所生育过期时间 返回秒数(integer) -2 # 返回 -2 该key已被过期######################################################################### EXPIRE 单位为秒127.0.0.1:6379[2]> EXPIRE name 15 (integer) 1127.0.0.1:6379[2]> ttl name(integer) 9
Redis EXISTS 命令用于检查给定 key 是否存在。
语法
redis EXISTS 命令基本语法如下:
redis 127.0.0.1:6379> EXISTS KEY_NAME
返回值
若 key 存在返回 1 ,否则返回 0
127.0.0.1:6379[2]> set name 王五OK127.0.0.1:6379[2]> exists name(integer) 1127.0.0.1:6379[2]> exists age(integer) 0
Redis Renamenx 命令用于在新的 key 不存在时修改 key 的名称 。
key重命名:当为一个key重命名的时候、如果重命名的名称在当前数据库中存在那么设置失败、返回0
如果不存在那么设置成功、返回1
语法
redis Renamenx 命令基本语法如下:
redis 127.0.0.1:6379> RENAMENX OLD_KEY_NAME NEW_KEY_NAME
返回值
修改成功时,返回 1 。 如果 NEW_KEY_NAME 已经存在,返回 0 。
127.0.0.1:6379[2]> set oldplay zhangsan # 设置一个新 keyOK127.0.0.1:6379[2]> set xianplay zhangsan # 设置第二个新 keyOK127.0.0.1:6379[2]> keys * # 查看全部 key1) "xianplay"2) "oldplay"127.0.0.1:6379[2]> RENAMENX oldplay new_play # 修改第一个key的名称(integer) 1 # 成功返回1 127.0.0.1:6379[2]> keys * # 再次查看已被修改1) "xianplay"2) "new_play"127.0.0.1:6379[2]> RENAMENX new_play xianplay # 修改第二个key的名称为一个已存在的key 失败(integer) 0
Redis Pttl 命令以毫秒为单位返回 key 的剩余过期时间。
语法
redis Pttl 命令基本语法如下:
redis 127.0.0.1:6379> PTTL KEY_NAME
返回值
当 key 不存在时,返回 -2 。
当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以毫秒为单位,返回 key 的剩余生存时间。
**注意:**在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。
127.0.0.1:6379[2]> set name zhangsan OK127.0.0.1:6379[2]> EXPIRE name 15(integer) 1127.0.0.1:6379[2]> ttl name(integer) 12127.0.0.1:6379[2]> PTTL name(integer) 6857127.0.0.1:6379[2]> ttl name(integer) 1127.0.0.1:6379[2]> ttl name(integer) -2127.0.0.1:6379[2]> EXPIRE name 15(integer) 0127.0.0.1:6379[2]> keys *(empty list or set)127.0.0.1:6379[2]> set name zhangsanOK127.0.0.1:6379[2]> EXPIRE name 15(integer) 1127.0.0.1:6379[2]> ttl name # 剩余时间 pttl返回毫秒数 ttl返回秒数(integer) 9######################################################################### pttl返回毫秒数 对应 EXPIREAT 设置的过期时间 ################### ttl返回毫秒数 对应 EXPIRE 设置的过期时间 ################################################################################
Redis DEL 命令用于删除已存在的键。不存在的 key 会被忽略。
语法
redis DEL 命令基本语法如下:
redis 127.0.0.1:6379> DEL KEY_NAME
返回值
被删除 key 的数量。
实例
首先,我们在 redis 中创建一个 key 并设置值。
redis 127.0.0.1:6379> SET w3ckey redisOK
现在我们删除已创建的 key。
redis 127.0.0.1:6379> DEL w3ckey(integer) 1127.0.0.1:6379[2]> del name # 不存在的key会被忽略 返回 0(integer) 0
Redis Expire 命令用于设置 key 的过期时间。key 过期后将不再可用。
语法
redis Expire 命令基本语法如下:
redis 127.0.0.1:6379> Expire KEY_NAME TIME_IN_SECONDS
返回值
设置成功返回 1 。
当 key 不存在或者不能为 key 设置过期时间时返回 0 。
127.0.0.1:6379[2]> set name zhangsan OK127.0.0.1:6379[2]> keys *1) "name"127.0.0.1:6379[2]> EXPIRE name 20(integer) 1127.0.0.1:6379[2]> ttl name(integer) 15
Redis DUMP 命令用于序列化给定 key ,并返回被序列化的值。
语法
redis DUMP 命令基本语法如下:
redis 127.0.0.1:6379> DUMP KEY_NAME
返回值
如果 key 不存在,那么返回 nil 。 否则,返回序列化之后的值。
127.0.0.1:6379[2]> set green "hello word redis!" # 设置一个keyOK127.0.0.1:6379[2]> DUMP green # 序列化 存在的 key 返回序列化后的值"\x00\x11hello word redis!\t\x00k\xcd\x8b\xe9\xad\x88\xbe\xb6"127.0.0.1:6379[2]> dump age # 序列化不存在的 key 返回null(nil)
Redis RANDOMKEY 命令从当前数据库中随机返回一个 key 。
语法
redis RANDOMKEY 命令基本语法如下:
redis 127.0.0.1:6379> RANDOMKEY
返回值
当数据库不为空时,返回一个 key 。 当数据库为空时,返回 nil 。
127.0.0.1:6379[2]> keys *1) "green"2) "email"3) "age"4) "name"127.0.0.1:6379[2]> RANDOMKEY"name"127.0.0.1:6379[2]> RANDOMKEY"name"127.0.0.1:6379[2]> RANDOMKEY"age"127.0.0.1:6379[2]> RANDOMKEY"name"127.0.0.1:6379[2]> RANDOMKEY"age"127.0.0.1:6379[2]> RANDOMKEY"age"127.0.0.1:6379[2]> RANDOMKEY"age"127.0.0.1:6379[2]> RANDOMKEY"name"127.0.0.1:6379[2]> RANDOMKEY"green"127.0.0.1:6379[2]> RANDOMKEY"green"127.0.0.1:6379[2]> RANDOMKEY"name"
Redis MOVE 命令用于将当前数据库的 key 移动到给定的数据库 db 当中。
语法
redis Move 命令基本语法如下:
redis 127.0.0.1:6379> MOVE KEY_NAME DESTINATION_DATABASE
返回值
移动成功返回 1 ,失败则返回 0 。
# 切换数据库 select index(可选0-15)### 这里我们为了方便后续的操作、使用 2 和 3 好数据库127.0.0.1:6379[2]> keys * # 查询2 号库中所有的key1) "green"2) "email"3) "age"4) "name"127.0.0.1:6379[2]> select 3 # 切换到 3 号库OK127.0.0.1:6379[3]> keys * # 查询 3 号库所有的(empty list or set)127.0.0.1:6379[3]> select 2 # 在切换到 2 号库OK127.0.0.1:6379[2]> MOVE name 3 # 将 2 号库中 key为name 移动到 3 号库(integer) 1127.0.0.1:6379[2]> keys * # 查看2 号库中的name确实不见了1) "green"2) "email"3) "age"127.0.0.1:6379[2]> SELECT 3 # 切换到3 号库OK127.0.0.1:6379[3]> keys * # 查看3 号库确实移动过来了1) "name"127.0.0.1:6379[3]> SELECT 2 OK127.0.0.1:6379[2]> set name zhansganOK127.0.0.1:6379[2]> SELECT 3OK127.0.0.1:6379[3]> MOVE name 2 # 移动 3 号库中key为name的数据到2 号库中、返回0 说明不能移动当前key到指定库中已存在相同名称的 key (integer) 0
相同名称的key不能移动
Redis PERSIST 命令用于移除给定 key 的过期时间,使得 key 永不过期。
语法
redis PERSIST 命令基本语法如下:
redis 127.0.0.1:6379> PERSIST KEY_NAME
返回值
当过期时间移除成功时,返回 1 。 如果 key 不存在或 key 没有设置过期时间,返回 0 。
127.0.0.1:6379[2]> keys *1) "green"2) "email"3) "age"4) "name"127.0.0.1:6379[2]> EXPIRE name 60 # 设置name的过期时间60s(integer) 1127.0.0.1:6379[2]> ttl name # 查看过期时间(integer) 57127.0.0.1:6379[2]> PERSIST name # 移出过期时间 (integer) 1127.0.0.1:6379[2]> ttl name(integer) -1127.0.0.1:6379[2]> keys * # 确实还存在1) "green"2) "email"3) "age"4) "name"
Redis Rename 命令用于修改 key 的名称 。
返回值
改名成功时提示 OK ,失败时候返回一个错误。
当 OLD_KEY_NAME 和 NEW_KEY_NAME 相同,或者 OLD_KEY_NAME 不存在时,返回一个错误。 当 NEW_KEY_NAME 已经存在时, RENAME 命令将覆盖旧值。
127.0.0.1:6379[2]> keys *1) "green"2) "email"3) "age"4) "name"127.0.0.1:6379[2]> get name"zhansgan"127.0.0.1:6379[2]> RENAME name ageOK127.0.0.1:6379[2]> get name(nil)127.0.0.1:6379[2]> keys *1) "green"2) "age"3) "email"127.0.0.1:6379[2]> get age"zhansgan"
总结:就是为key设置新的名称的时候如果新名称不存在那么就设置成功、如果设置的新名称存在、那么就将被修改key名称的value覆盖到已存在key名称的key的value中替换掉、并且删除被修改的key
Redis Type 命令用于返回 key 所储存的值的类型。
语法
redis Renamenx 命令基本语法如下:
redis 127.0.0.1:6379> TYPE KEY_NAME
返回值
返回 key 的数据类型,数据类型有:
# 字符串redis> SET weather "sunny"OKredis> TYPE weatherstring # 列表 redis> LPUSH book_list "programming in scala"(integer) 1redis> TYPE book_listlist # 集合 redis> SADD pat "dog"(integer) 1redis> TYPE patset
转载地址:http://ddqzi.baihongyu.com/