美文网首页
Redis 键(key)

Redis 键(key)

作者: 爱折腾的傻小子 | 来源:发表于2020-09-29 16:07 被阅读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
    

    相关文章

      网友评论

          本文标题:Redis 键(key)

          本文链接:https://www.haomeiwen.com/subject/clvkuktx.html