Redis从入门到实战(十二、哈希(Hash))

119 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第8天,点击查看活动详情

1、HSET key field value

添加或者修改hash类型 key 的field的值

127.0.0.1:6379> hset dog color red
(integer) 1
127.0.0.1:6379> hset dog age 2
(integer) 1
127.0.0.1:6379> hset tree name guihua
(integer) 1
127.0.0.1:6379> hset tree age 20
(integer) 1

2、HGET key field

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

127.0.0.1:6379> hget tree age
"20"
127.0.0.1:6379> hget dog color
"red"

3、HMSET key field1 value1 [field2 value2 ]

批量添加多个hash类型key的field的值

127.0.0.1:6379> hmset dog name xiaohua sex nan
OK

4、HMGET key field1 [field2]

批量获取多个hash类型key的field的值

127.0.0.1:6379> hmget dog name age
1) "xiaohua"
2) "2"

5、HGETALL key

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

127.0.0.1:6379> hgetall dog
1) "color"
2) "red"
3) "age"
4) "2"
5) "name"
6) "xiaohua"
7) "sex"
8) "nan"

6、HKEYS key

获取一个hash类型的key中的所有的field

127.0.0.1:6379> hkeys dog
1) "color"
2) "age"
3) "name"
4) "sex"

7、HVALS key

获取一个hash类型的key中的所有的value

127.0.0.1:6379> hvals dog
1) "red"
2) "2"
3) "xiaohua"
4) "nan"

8、HINCRBY key field increment

让一个hash类型key的字段值自增并指定步长

127.0.0.1:6379> hincrby dog age 5
(integer) 7

9、HSETNX key field value

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

127.0.0.1:6379> hsetnx dog age 3
(integer) 0

10、HEXISTS key field

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

127.0.0.1:6379> hexists dog name
(integer) 1

11、HLEN key

获取哈希表中字段的数量

127.0.0.1:6379> hlen dog
(integer) 4

列表(List)

Redis列表是简单的字符串列表,按照插入顺序排序,你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

它的底层实际是个链表 !

Redis中的List类型与Java中的LinkedList类似,可以看做是一个双向链表结构。既可以支持正向检索和也可以支持反向检索。

特征也与LinkedList类似:

  • 有序
  • 元素可以重复
  • 插入和删除快
  • 查询速度一般

常用来存储一个有序数据,例如:朋友圈点赞列表,评论列表等。

一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。