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=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散列类型的基本内容,有不足的地方,还请大佬指出。