Redis(八)hash散列类型

606 阅读3分钟

这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战

hash散列类似于一个小型的Redis数据库,一个散列可以包含多个键值对,散列的每个键都不能重复,各不相同,无序排列,其值可以是字符串或数字值,对于数字值,可以执行自增或者自减操作

hash 特别适合用于存储对象。

一:字符串结构:

[
    "user":[
        "camellia1":"90",
        "camellia2":"100",
        "camellia3":"90"
    ]
]

二:hash散列类型相关操作命令(PHP+linux)

1:Linux命令使用

(1):添加一个键值对到散列。如果 成功则返回1;如果键已经存在,返回0

hset hash-key camellia1 90      // 返回(integer) 1成功
hset hash-key camellia1 120     // 返回(integer) 0失败,但是值修改成为120
hset hash-key camellia2 120     // 返回(integer) 1成功
hset hash-key lulubin1 90           // 返回 0,由于该键已经存在
 

(2):hget获取一个给定键camellia的值。

hget hash-key camellia1              // "120"

(3):hgetall 获取所有添加的值

hgetall hash-key

输出:

1) "camellia1"
2) "120"
3) "camellia2"
4) "120"

(4):hdel 删除键值,成功返回1,失败返回0;

hdel hash-key camellia1             // 返回(integer) 1

2:PHP使用:

(1):添加,成功返回1,失败返回0;

    $res = $redis->hset("hash-key","camellia1","90");
$res = $redis->hset("hash-key","camellia1","90");
    var_dump($res);  // 返回1  添加成功
  
    $res = $redis->hset("hash-key","camellia2","120");
     
    // 键已存在,给其设置不同值,直接修改。但是,返回0;
    $res = $redis->hset("hash-key","camellia2","150");

(2):查看刚刚添加的所有键值

$array = $redis->hgetall("hash-key");
    var_dump($array);
    // 输出:
    /*array(2) { ["camellia1"]=> string(2) "90" ["camellia2"]=> string(3) "150" }//*/

(3):hget获取键对应的值。

// 获取其中一个建对应的值
    $result = $redis->hget("hash-key",'camellia1');
    var_dump($result);      // 返回90

(4):hdel删除其中一个键。 如果之前键存在于散列中,则返回1,反之,返回0

res=res = redis->hdel("hash-key","camellia1"); var_dump($res); // 返回0

三:redis hash 应用场景

1:Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。

2:存储部分变更的数据,如用户信息等。

四:其他常用redis命令

序号

命令及描述

1

HDEL key field1 [field2] 
  删除一个或多个哈希表字段

2

HEXISTS   key field 
  查看哈希表 key 中,指定的字段是否存在。

3

HGET key field 
  获取存储在哈希表中指定字段的值。

4

HGETALL   key 
  获取在哈希表中指定 key 的所有字段和值

5

HINCRBY   key field increment 
  为哈希表 key 中的指定字段的整数值加上增量 increment 。

6

HINCRBYFLOAT   key field increment 
  为哈希表 key 中的指定字段的浮点数值加上增量 increment 。

7

HKEYS key 
  获取所有哈希表中的字段

8

HLEN key 
  获取哈希表中字段的数量

9

HMGET key field1 [field2] 
  获取所有给定字段的值

10

HMSET key field1 value1   [field2 value2 ] 
  同时将多个 field-value (域-值)对设置到哈希表 key 中。

11

HSET key field value 
  将哈希表 key 中的字段 field 的值设为 value 。

12

HSETNX   key field value 
  只有在字段 field 不存在时,设置哈希表字段的值。

13

HVALS key 
  获取哈希表中所有值

14

HSCAN   key cursor [MATCH pattern] [COUNT count] 
  迭代哈希表中的键值对。

以上基本上是我看的redis HASH散列类型的基本内容,有不足的地方,还请大佬指出。

有好的建议,请在下方输入你的评论。

欢迎访问个人博客 guanchao.site

欢迎访问小程序:

在这里插入图片描述