美文网首页
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 学习(4)-- 哈希类型

    redis 学习(4)-- 哈希类型 介绍 redis 中哈希键值结构: 可以看出:哈希键值包括 key,fiel...

  • python操作redis

    连接redis服务 Redis 字符串(String) Redis 哈希(Hash) Redis 列表(List)...

  • Redis中的字典

    Redis中的字典 Redis中的字典使用哈希表作为底层实现,一个哈希表中可以有多个哈希表结点,而每个哈希表结点保...

  • Redis-集群

    哈希槽Redis集群没有采用一致性hash,而是引入了哈希槽的概念。Redis集群有16384个哈希槽,每个key...

  • 探究Redis 04:哈希表与集合

    Redis哈希表(Hashes) Redis中的哈希表数据类型和很多编程语言的实现类似,通过键值对记录数据: 尽管...

  • 「Redis源码解读」—数据结构(二)哈希表

    Redis的字典使用哈希表作为底层实现 知识点 1.数据结构 哈希节点 哈希表 类型处理函数 2.哈希 哈希算法 ...

  • Redis 哈希

    Hset 为哈希表中的字段赋值 如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作 如果字段已经存在于哈...

  • Redis哈希

    设置值 hset key field value如果设置成功的返回1,反之会返回0;Redis还提供hsetnx,...

  • redis入门(四) redis底层结构简介(哈希表,跳跃表,压

    一些常用的redis结构,底层实现及方法 哈希表 在redis当中,使用哈希表作为字典的底层实现,底层是数组+链表...

  • redis数据结构--字典

    Redis的字典底层就是哈希表。 哈希表 首先给出哈希表的定义: 其中可以看到,table是一个哈希表节点的数组,...

网友评论

      本文标题:Redis 哈希

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