美文网首页
Redis 哈希

Redis 哈希

作者: 爱折腾的傻小子 | 来源:发表于2020-09-27 09:06 被阅读0次
    Hset 为哈希表中的字段赋值
    • 如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作
    • 如果字段已经存在于哈希表中,旧值将被覆盖
    • hset redis命令 HSET KEY_NAME FIELD VALUE
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hset',     
        [
            'h1',        // key
           'name',  // field
           '李四'    // value
        ]
    );
    // 
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->append('hset', 
    // 'h1', 'name', '李四');
    // 返回值新增成功返回1 更新返回0
    
    Hmset 同时将多个 field-value (字段-值)对设置到哈希表中
    • 此命令会覆盖哈希表中已存在的字段
    • 如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作
    • hmset redis命令 HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN
    // 一个hash 对应数据库里一条数据
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hmset', [
        'user_1' , [
            'id'    => 1,
            'name'  => '张三',
            'age'   => 16,
            'sex'   => 1
        ]
    ]);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->hmset('user_2' , [
    //    'id'    => 1,
    //    'name'  => '张三',
    //    'age'   => 16,
    //    'sex'   => 1
    //]);
    // 保存成功返回 true
    
    Hget 返回哈希表中指定字段的值

    hget redis命令 HGET KEY_NAME FIELD_NAME

    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hget', [
        'user_1' , 'id'
    ]);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->hget('user_2' , 'name');
    // 返回获取到的值
    
    Hmget 返回哈希表中,一个或多个给定字段的值
    • hmget redis命令 HMGET KEY_NAME FIELD1...FIELDN
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hmget', [
        'user_1' , ['id', 'name', 'asss']
    ]); //打印结果 ["id" => "1", "name" => "张三", "asss" => false]
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->
    // hmget('user_2' , ['id', 'name', 'asss']); // 打印结果 ["1", "张三",false]
    
    Hgetall 返回哈希表中,所有的字段和值
    • hgetall redis命令 HGETALL KEY_NAME
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hgetall', [
        'user_1'
    ]); //   ["id" => "1","name" => "张三","age" => "16","sex" => "1"]
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->hgetall('user_2');
    
    Hexists 查看哈希表的指定字段是否存在
    • hexists redis命令 HEXISTS KEY_NAME FIELD_NAME
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hexists', [
        'user_1', 'id'
    ]);
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->hexists('user_1', 'id');
    // 返回值 如果存在返回true 否则返回false
    
    Hdel 删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略
    • hdel redis命令 HDEL KEY_NAME FIELD1.. FIELDN
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hdel', [
        'user_1', 'age'
    ]);  // 1
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->hdel('user_1', 'id');
    // 返回值 返回成功删除的数量
    
    Hincrby 为哈希表中的字段值加上指定增量值
    • 增量也可以为负数,相当于对指定字段进行减法操作
    • 如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令
    • 如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0
    • 对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误
    • hincrby redis命令 HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hincrby', [
        'user_2', 'age', 2
    ]);  // 22
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->hincrby('user_2', 'age', 2);
    // 返回值 返回更新后redis存储的值
    
    Hincrbyfloat 为哈希表中的字段值加上指定浮点数增量值
    • 如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0
    • hincrbyfloat redis命令 HINCRBYFLOAT KEY_NAME FIELD_NAME INCR_BY_NUMBER
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hincrbyfloat', [
        'user_2', 'age', 2.1
    ]); // 24.1
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->hincrbyfloat('user_2', 'age', 2.2);
    // 返回值 返回更新后redis存储的值 
    
    Hlen 获取哈希表中字段的数量
    • hlen redis命令 HLEN KEY_NAME
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hlen', [
        'user_1'
    ]);  // 3
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->hlen('user_2');
    // 返回值 字段数量
    
    Hvals 返回哈希表所有字段的值
    • 和hgetall比较类似 hgetall返回key-value形式 hvals返回values
    • hvals redis命令 HVALS KEY_NAME FIELD VALUE
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hvals', [
        'user_1'
    ]);  // [ "1", "张三", "22.1", "1]
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->hvals('user_2');
    
    Hkeys 获取哈希表中的所有字段名
    • hkeys redis命令 HKEYS KEY_NAME FIELD_NAME INCR_BY_NUMBER
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hkeys', [
        'user_1'
    ]);  // ["id", "name", "sex"]
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->hkeys('user_2');
    
    Hsetnx 为哈希表中不存在的的字段赋值
    • 如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作
    • 如果字段已经存在于哈希表中,操作无效
    • 如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令
    • hsetnx redis命令 HSETNX KEY_NAME FIELD VALUE
    $return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hsetnx', [
        'user_1', 'sd', 'sd1'
    ]);  // true
    // or
    // $return = \Illuminate\Support\Facades\Redis::connection('expired')->hsetnx('user_1', 'sd', 'sd1');
    // 返回值 成功返回true 失败返回false
    

    相关文章

      网友评论

          本文标题:Redis 哈希

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