Redis 键(key)
2020-09-29 本文已影响0人
爱折腾的傻小子
Type 返回 key 所储存的值的类型
-
type redis命令
TYPE KEY_NAME
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('type', [
'myset1'
]); // 2
// or
$type = [
\Redis::REDIS_STRING, // 1
\Redis::REDIS_SET, // 2
\Redis::REDIS_LIST, // 3
\Redis::REDIS_ZSET, // 4
\Redis::REDIS_HASH, // 5
\Redis::REDIS_NOT_FOUND,// 0
];
Expire 设置 key 的过期时间(秒)
- key 过期后将不再可用
-
expire redis命令
Expire KEY_NAME TIME_IN_SECONDS
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('expire', [
'myset1', 240
]); // true
// 设置成功返回true 设置失败返回false
Expireat 命令用于以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间
- key 过期后将不再可用
-
expireat redis命令
Expireat KEY_NAME TIME_IN_UNIX_TIMESTAMP
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('expireAt', [
'myset1', time() + 240
]); // true
Pexpireat 设置 key 的过期时间,毫秒
- key 过期后将不再可用
-
pexpireat redis命令
PEXPIREAT KEY_NAME TIME_IN_MILLISECONDS_IN_UNIX_TIMESTAMP
\Illuminate\Support\Facades\Redis::connection('expired')->set('xxxx', '42');
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('pExpireAt', [
'xxxx', 1601187575000
]); // true
dump(
\Illuminate\Support\Facades\Redis::connection('expired')->ttl('xxxx'),
\Illuminate\Support\Facades\Redis::connection('expired')->pttl('xxxx')
); // 9953 9952951
TTL 以秒为单位返回 key 的剩余过期时间
- 当 key 不存在时,返回 -2
- 当 key 存在但没有设置剩余生存时间时,返回 -1
- 否则,以毫秒为单位,返回 key 的剩余生存时间
- 在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1
-
ttl redis命令
TTL KEY_NAME
# 参考pexpireat
Pttl 以毫秒为单位返回 key 的剩余过期时间
- 当 key 不存在时,返回 -2
- 当 key 存在但没有设置剩余生存时间时,返回 -1
- 否则,以毫秒为单位,返回 key 的剩余生存时间
- 在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1
-
pttl redis命令
PTTL KEY_NAME
# 参考pexpireat
Exists 检查给定 key 是否存在
-
exists redis命令
EXISTS KEY_NAME
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('exists', [
'xxxx'
]); // 1
\Illuminate\Support\Facades\Redis::connection('expired')->mSet(['foo' => 'foo', 'bar' => 'bar', 'baz' => 'baz']);
$return1 = \Illuminate\Support\Facades\Redis::connection('expired')->command('exists', [
['foo', 'bar', 'baz']
]); // 3
Keys 查找所有符合给定模式 pattern 的 key
-
keys redis命令
KEYS PATTERN
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('keys', [
'*'
]); // ['weather', 'adasd']
// * 代表查出所有key we*表示查出所有we开头的key
Rename 修改 key 的名称
- 改名成功时提示 OK ,失败时候返回一个错误
- 当 OLD_KEY_NAME 和 NEW_KEY_NAME 相同,或者 OLD_KEY_NAME 不存在时,返回一个错误
- 当 NEW_KEY_NAME 已经存在时, RENAME 命令将覆盖旧值
-
rename redis命令
RENAME OLD_KEY_NAME NEW_KEY_NAME
// 将键as修改为as1
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('rename', [
'as', 'as1'
]); // true
Renamenx 在新的 key 不存在时修改 key 的名称
-
renamenx redis命令
RENAMENX OLD_KEY_NAME NEW_KEY_NAME
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('renamenx', [
'as', 'as1'
]); // true
Dump 序列化给定 key ,并返回被序列化的值
- 如果 key 不存在,那么返回 nil 。 否则,返回序列化之后的值
-
dump redis命令
DUMP KEY_NAME
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('dump', [
'as1'
]); // ^ b"\x00ÂÕÝ\x00\x00\t\x00Œ <‚9¯hy"
// redis里数据不会序列化 只是取值后序列化
Randomkey 从当前数据库中随机返回一个 key
- 从当前数据库中随机返回一个 key
- 当数据库不为空时,返回一个 key 。 当数据库为空时,返回 nil
-
randomkey redis命令
RANDOMKEY
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('randomKey'); // 'foo'
Move 将当前数据库的 key 移动到给定的数据库 db 当中
-
move redis命令
MOVE KEY_NAME DESTINATION_DATABASE
// 将foo从当前库移除到8库
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('move', [
'foo', 8
]); // true
Persist 移除给定 key 的过期时间,使得 key 永不过期
- 当过期时间移除成功时,返回 1 。 如果 key 不存在或 key 没有设置过期时间,返回 0
-
persist redis命令
PERSIST KEY_NAME
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('persist', [
'foo'
]); // true