redis数据类型之hash入门

入门

哈希类型也是key-value结构,key是字符串类型,其value分为两个部分:field和value
在这里插入图片描述

增–hset

public Long hset(String key,
                 String field,
                 String value)

将指定的哈希字段设置为指定的值。
如果key不存在,则会创建一个包含哈希的新key。
时间复杂度:O(1)

public String hget(String key,
                   String field)

如果key包含哈希,则检索与指定字段关联的值。
如果找不到该字段或该键不存在,则返回一个特殊的“ nil”值。
时间复杂度:O(1)

public java.util.List<String> hmget(String key,
                                    String... fields)

检索与指定字段关联的值。
如果某些指定字段不存在,则返回nil值。 不存在的key被视为空哈希。
时间复杂度:O(N)(其中N为字段数)

//创建一个hash类型
> hset myhash field1 "hello" field2 "world"
(integer) 2
//依据field获取hash类型的值,获取多个字段要用hmget.
> hget myhash field1 field2
(error) ERR wrong number of arguments for 'hget' command
//hget一次只能查看一个field的值
> hget myhash field1
"hello"
> hget myhash field2
"world"
> hmget myhash field1 field2
1) "hello"
2) "world"

删-hdel

删除kv对中v的field的,返回值是成功删除了多少个元素,就是成功删除了一个元素,就返回1,成功删除了2个元素,就返回2,etc

//删除key myhash 中的字段1
> hdel myhash field1
(integer) 1
> hmget myhash field1
1) (nil)
> hmget myhash field2
1) "world"

改-hset

实现增删改查的改,增和改其实是同一个,覆盖原有的就可以了

//新建一个hash类型
> hset person username liming age 23 height 180
(integer) 3
> hgetall person
1) "username"
2) "liming"
3) "age"
4) "23"
5) "height"
6) "180"
//修改一个hash类型的value,会覆盖原先的哦
> hset person username liming age 26 height 180
(integer) 0
> hgetall person
1) "username"
2) "liming"
3) "age"
4) "26"
5) "height"
6) "180"

查 --hget,hmget,hgetall

hget 查一个字段
hmget 查多个字段
hgetall 查所有字段

关于value的两部分

如果把hash类型理解为kv对,那么这个v事实上包含两部分
field和value
如何获取所有的field?又如何获取所有的value?

> hkeys person
1) "username"
2) "age"
3) "height"

> hvals person
1) "liming"
2) "26"
3) "180"

从这又可以看出,hash类型很像map,里面存了一堆kv对~

判断是否包含field

判断hash是否包含某个field,包含返回1,不包含返回0
如果写代码,这个也是会常用的,一种关系的判断

> hexists person age
(integer) 1
> hexists person wc
(integer) 0

总结

hash类型无非也是增删改查

增 hset
删 hdel
改 hset
查 hget,hmget,hgetall

如果把hash类型类比下java的map类型,或许就容易理解了~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值