Hash 结构
Redis hash 看起来就像一个 “hash” 的样子,由键值对组成:
127.0.0.1:6379> hset user:1:info username admin
1
127.0.0.1:6379> hset user:1:info age 26
1
127.0.0.1:6379> hget user:1:info username
admin
127.0.0.1:6379> hget user:1:info age
26
通过上面的代码实例我们可以得知Hash 的数据结构为:
我们创建好了一个 hash 的结构,也可以追加里面的field字段和值
127.0.0.1:6379> hset user:1:info class 301
(integer) 1
127.0.0.1:6379> hget user:1:info class
"301"
127.0.0.1:6379> hgetall user:1:info
1) "username"
2) "admin"
3) "age"
4) "26"
5) "class"
6) "301"
我们也可以通过不同key,来指定不同的学生:
id 为 1 :user:1:info
id 为 2 :user:2:info
因此 Hash 便于表示 objects,实际上,你可以放入一个 hash 的域数量实际上没有限制(除了可用内存以外)。所以,你可以在你的应用中以不同的方式使用 hash。
Hash 常用的命令
相较于与 String 的命令,Hash 的命令大都是以 “H” 开头的。
命令 | 描述 |
---|---|
HGET key field | 获取存储在哈希表中指定字段的值 |
HSET key field value | 将哈希表 key 中的字段 field 的值设为 value |
HDEL key field1 [field2] | 删除一个或多个哈希表字段 |
127.0.0.1:6379> hset user:2:info username xiaohua
(integer) 1
127.0.0.1:6379> hget user:2:info username
"xiaohua"
127.0.0.1:6379> hdel user:2:info username
(integer) 1
127.0.0.1:6379> hget user:2:info username
(nil)
命令 | 描述 |
---|---|
HEXISTS key field | 查看哈希表 key 中,指定的字段是否存在 |
HLEN key | 获取哈希表中字段的数量 |
HKEYS key | 获取所有哈希表中的字段 |
HGETALL key | 获取在哈希表中指定 key 的所有字段和值 |
HVALS key | 获取哈希表中所有值 |
127.0.0.1:6379> hexists user:2:info username
(integer) 0
127.0.0.1:6379> hset user:2:info username xiaohua
(integer) 1
127.0.0.1:6379> hexists user:2:info username
(integer) 1
127.0.0.1:6379> hlen user:2:info
(integer) 1
127.0.0.1:6379> hset user:2:info age 26
(integer) 1
127.0.0.1:6379> hlen user:2:info
(integer) 2
127.0.0.1:6379> hkeys user:2:info
1) "username"
2) "age"
127.0.0.1:6379> hgetall user:2:info
1) "username"
2) "xiaohua"
3) "age"
4) "26"
127.0.0.1:6379> hvals user:2:info
1) "xiaohua"
2) "26"
命令 | 描述 |
---|---|
HMGET key field1 [field2] | 获取所有给定字段的值 |
HMSET key field1 value1 [field2 value2 ] | 同时将多个 field-value (域-值)对设置到哈希表 key 中 |
127.0.0.1:6379> hmget user:2:info username age
1) "xiaohua"
2) "26"
127.0.0.1:6379> hmset user:2:info class 301 father xiaowang mother xiaocai
OK
127.0.0.1:6379> hkeys user:2:info
1) "username"
2) "age"
3) "class"
4) "father"
5) "mother"
127.0.0.1:6379> hgetall user:2:info
1) "username"
2) "xiaohua"
3) "age"
4) "26"
5) "class"
6) "301"
7) "father"
8) "xiaowang"
9) "mother"
10) "xiaocai"
Hash 还有很多其他的命令,大家可以看下这个链接:
Hash 命令大全
之前准备学习的时候写博客,可是都没有坚持下去,希望这次可以有始有终。
Redis 坚持第一天 :为什么要使用 redis ?
Redis 坚持第二天 :Redis 的安装与启动
Redis 坚持第三天 :Redis 使用配置文件启动,常见配置学习。
Redis 坚持第四天 :