前言:
Redis的哈希值是字符串字段和字符串值之间的映射。相比string等数据类型,它提供很多方便的域操作,因此在表示对象时,它是非常适合的数据类型。
主要方法:
1. 在 redis 中,使用HSET命令来将哈希表 key 中的域 field 的值设为 value ,语法如下: HSET key field value
例如:HSET site fkwebs “cyanprobe.com” # 设置一个新域 键 fkwebs 值 “cyanprobe.com” //若不存在返回1,存在返回0 并覆盖
2. 除了HSET命令,HMSET命令的用途也是用来设置值,不同的是,HMSET一次可以设置多个 field-value (域-值)对设置到哈希表 key 中,语法如下:HMSET key field value [field value …]
例如:HMSET site fkwebs “cyanprobe.com” link “ddh.me”
3. HGET是用来获取指定 key 值的命令,语法如下: HGET key field
例如 : HGET site fkwebs //返回 1 值”cyanprobe.com”
4. 作为HMSET命令对应的获取命令,HMGET可以一次性获取哈希表 key 中,一个或多个给定域的值,基本语法:HMGET key field [field …]
注:若不存在返回nil
5. 如果我们想要一次性获取全部域的值,很显然 HGET 和 HMGET 都是不合适的,所幸的是我们还有HGETALL指令,通过它,我们可以轻松的获取到全部域值,基本语法如下:HGETALL key
注:返回格式 #域#值 相互交错
6. 在应用环境中,我们经常会需要知道一个 key 中是否存在某个 field ,HEXISTS命令可以帮助我们达到这个目的,基本语法: HEXISTS key field
例:HEXISTS site link //检查是否存在site link域 返回1存在 0不存在
7. 在现实运用中我们可能需一个车队的信息可以使用HKEYS来获取哈希表 key 中的所有域,基本语法:HKEYS key
例:HMSET group jack “Jack car” steven “steven car” —— KEYS group //返回 jack steven
8. HLEN命令将返回哈希表 key 中域的数量,什么时候会用到它呢?比如:在线聊天室,用来显示在线用户数,基本语法:HLEN key
例:HSET host user1 “zhangsan” HSET host user2 “lisi” ——HLEN host //返回 (integer)2
9. 有添加就必定有删除的需求,当我们想要删除哈希表 key 中的一个或多个指定域时,可以使用HDEL命令,基本语法:HDEL key field
例:HDEL host user1 //这时 KEY host 中的 user1被删除 若不存在会被忽略
后记:
可以看到HASH非常适合储存对象,学习完这一部分准备小试身手,下一部分是列表,我综合下,先准备把骨架假设起来,等到考虑具体在内存数据库进行业务分析,再缓慢进行推进。