Hash类型
hash叫散列类型,它提供了字段和字段值的映射。字段值只能是字符串类型,不支持散列类型、集合类型等其它类型。如下:
Hash命令
HSET key field value 赋值
HSET命令不区分插入和更新操作,当执行插入操作时HSET命令返回1,当执行更新操作时返回0。
127.0.0.1:6379> hset user username zhangsan
(integer) 1
HMSET key field value [field value …] 一次可以设置多个字段值
127.0.0.1:6379> hmset user age 20 username lisi
OK
HSETNX key field value 当字段不存在时赋值
当字段不存在时赋值,类似HSET,区别在于如果字段存在,该命令不执行任何操作
127.0.0.1:6379> hsetnx user age 30
如果user中没有age字段则设置age值为30,否则不做任何操作
(integer) 0
HGET key field 一次只能获取一个字段值
127.0.0.1:6379> hget user username
"zhangsan“
HMGET key field [field …] 一次可以获取多个字段值
127.0.0.1:6379> hmget user age username
1) "20"
2) "lisi"
HGETALL key 获取所有字段值
127.0.0.1:6379> hgetall user
1) "age"
2) "20"
3) "username"
4) "lisi"
HDEL key field [field …] 可以删除一个或多个字段,返回值是被删除的字段个数
127.0.0.1:6379> hdel user age
(integer) 1
127.0.0.1:6379> hdel user age name
(integer) 0
127.0.0.1:6379> hdel user age username
(integer) 1
HINCRBY key field increment 增加值
127.0.0.1:6379> hincrby user age 2 将用户的年龄加2
(integer) 22
127.0.0.1:6379> hget user age 获取用户的年龄
"22“
HEXISTS key field 判断字段是否存在
127.0.0.1:6379> hexists user age 查看user中是否有age字段
(integer) 1
127.0.0.1:6379> hexists user name 查看user中是否有name字段
(integer) 0
HKEYS key 只获取字段名
HVALS key 只获取字段值
127.0.0.1:6379> hmset user age 20 name lisi
OK
127.0.0.1:6379> hkeys user
1) "age"
2) "name"
127.0.0.1:6379> hvals user
1) "20"
2) "lisi"
HLEN key 获取字段长度
127.0.0.1:6379> hlen user
(integer) 2
Hash应用
存储商品信息:
商品字段
【商品id、商品名称、商品描述、商品库存、商品好评】
定义商品信息的key
商品1001的信息在 Redis中的key为:[items:1001]
储商品信息
192.168.101.3:7003> HMSET items:1001 id 3 name apple price 999.9
OK
获取商品信息
192.168.101.3:7003> HGET items:1001 id
"3"
192.168.101.3:7003> HGETALL items:1001
1) "id"
2) "3"
3) "name"
4) "apple"
5) "price"
6) "999.9"