良许Linux教程网 干货合集 Redis数据类型:Hash使用方法

Redis数据类型:Hash使用方法

redis是一个开源的,先进的key-value存储,属于非关系型缓存数据库,通常被称为数据结构服务器。redis一共有五种基本的数据类型,String类型、hash类型、list类型以及set(无序集合)和zset(有序集合),本篇文章为大家分享一下Hash类型使用方法。

img

哈希类型是指键值对里的value本身存储的也是一个个的KV键值对,类似于python中的dict和java中的map集合。

hash_value={undefined{field1,value1},…{fieldN,valueN}}

hkey–>hvalue

hvalue{k1:v1 ,k2:v2 ,k3:v3…}

基本操作

赋值

散列操作不区分插入和更新,当设置一个field的时候如果不存在的话表示新增,如果已经存在的话则表示更新,之前的值会被覆盖掉。当设置值的时候如果field在之前不存在的话则返回1,视为新增,如果field已经存在的话,返回0,视为更新。

hset   
image

 

第一次赋值的时候因为k1不存在,是新增field操作,返回值是1,第二次k1已经存在了,是更新操作,返回值是0.

使用hmset一次赋多个值:

hmset    [  …]
image

 

使用hsetnx只有当指定的field不存在时才赋值,这个是为了避免覆盖掉已有的值:

hsetnx   
image

 

返回值表示是否赋值成功,返回1表示这个field之前并不存在,此次赋值成功,返回0表示指定的field之前就已经存在,此次赋值失败。

取值

hget一次取一个值,hmget一次取出多个值:

hget  ``hmget   [ …]
image

 

使用hgetall一次取出全部的field和value:

hgetall 
image

 

用于获取hash表中的field集合和value集合:

hkeys ``hvals 

返回值是一个列表:

image

 

总结一下:

hgetall 获取所有的field和value,组合成一个list返回``hkeys 获取所有的key集合,相当于java中的keySet()``hvals 获取所有的value集合,相当于java中的valueSet()

判断field是否已存在

hexists用于判断在指定的hash表中某个field是否已存在:

hexists  
image

 

返回值是1或0,返回1表示指定的field已经存在,返回0表示不存在。

获取hash表中的field个数

使用hlen获取指定的hash表中field的个数:

hlen 
image

field自增

使用hincrby对某个整数类型的field一次自增某个整数量:

hincrby   
image

删除

要删除hash表中的某个field,使用hdel:

hdel   [ …]
image

 

hdel的返回值是成功删除的field的个数。

可以一次删除多个filed:

image

 

返回值是2表示成功删除了两个field。

要删除hash表本身使用del命令:

image

 

del是用于删除key即hash表本身的,hdel是用于删除hash表中的field的。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

img
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部