设为首页 收藏本站
查看: 862|回复: 0

[经验分享] Redis基本数据类型介绍及相关方法介绍笔记--Hash类型

[复制链接]

尚未签到

发表于 2016-12-21 09:11:00 | 显示全部楼层 |阅读模式
Redis五种数据类型之 Hash 类型

Hash类型
是一个string类型的field和value的映射表。他的添加删除都是0/1操作。
适用于存储对象,相对于把一个对象分成每个字段并存成单个String类型。将一个对象存储在hash类型会减少占用的内存喔。
  下面切入正题咯:
  常用命令总结(自用总结 不喜勿喷):
 
1.hset方法
设置一个hash表 field为指定值 如果key不存在则先创建
 
Hash表名为userChung:001 含义:id为001的userChung对象(或hash table)
name属性/键为Harbor
eg:
 127.0.0.1:6379> hset userChung:001 name Harbor
(integer) 1
127.0.0.1:6379> hget userChung:001 name
 “Harbor”
 
2.hsetnx方法
设置一个hash表 field为指定值 如果key不存在则先创建并返回1,
存在则返回0,不作操作.
eg:
127.0.0.1:6379> hsetnx userChung:002 name HarborChung
(integer) 1
127.0.0.1:6379> hget userChung:002 name
“HarborChung"
--已存在情况
127.0.0.1:6379> hsetnx userChung:001 name HarborChung
(integer) 0
127.0.0.1:6379> hget userChung:001 name
“Harbor”
 
3.hmset方法
同时设置多个hash表的field属性/键
eg:
127.0.0.1:6379> hmset userChung:003 name Chung gender male age 22
OK
127.0.0.1:6379> hget userChung:003 name
"Chung"
127.0.0.1:6379> hget userChung:003 gender
"male"
127.0.0.1:6379> hget userChung:003 age
“22"
 
4.hget方法
 eg:参考hset中获取内容
 
5.hmget方法
获取hash中 全部指定的属性即hash field
eg:
127.0.0.1:6379> hmget userChung:003 name gender 
1) "Chung"
2) “male"
--对于获取不存在的属性field时
127.0.0.1:6379> hmget userChung:002 name gender 
1) "HarborChung"
2) (nil)
 
6.hincrby方法
对指定的hash field属性进行自增
eg:
127.0.0.1:6379> hmget userChung:003 age
1) "22"
127.0.0.1:6379> hincrby userChung:003 age 2
(integer) 24
127.0.0.1:6379> hmget userChung:003 age
1) “24"
—对于不存在的field redis默认创建该field并付初始值0 并进行相应添加操作
127.0.0.1:6379> hmget userChung:002 age 
1) (nil)
127.0.0.1:6379> hincrby userChung:002 age 2
(integer) 2
127.0.0.1:6379> hmget userChung:002 name age
1) "HarborChung"
2) “2”
 
7.hexists方法
查找该field是否在hash表中存在
存在返回1,不存在返回0
eg:
127.0.0.1:6379> hexists userChung:002 gender
(integer) 0
127.0.0.1:6379> hexists userChung:002 age
(integer) 1
127.0.0.1:6379> hmget userChung:002 gender age 
1) (nil)
2) “2"
 
8.hlen方法
返回指定hash的filed属性/键数量
eg:
127.0.0.1:6379> hlen userChung:003
(integer) 3
127.0.0.1:6379> hlen userChung:002
(integer) 2
127.0.0.1:6379> hmget userChung:002 name age gender
1) "HarborChung"
2) "2"
3) (nil)
127.0.0.1:6379> hmget userChung:003 name age gender
1) "Chung"
2) "24"
3) “male"
 
9.hdel方法
删除指定hash的field键。返回值为1代表删除成功。0代表为删除失败。
eg:
127.0.0.1:6379> hget userChung:003 gender
"male"
127.0.0.1:6379> hdel userChung:003 gender
(integer) 1
127.0.0.1:6379> hdel userChung:003 gender
(integer) 0
127.0.0.1:6379> hget userChung:003 gender
(nil)
 
10.hkeys方法
返回hash表中所有field属性/键.
eg:
127.0.0.1:6379> hkeys userChung:002
1) "name"
2) "age"
127.0.0.1:6379> hkeys userChung:001
1) “name”
 
11.hvals方法
返回hash表中所有field属性值/值.
eg:
127.0.0.1:6379> hvals userChung:001
1) "Harbor"
127.0.0.1:6379> hvals userChung:002
1) "HarborChung"
2) “2”
 
12.hgetall方法
获取某个hash中的全部field属性/键 以及相应的值
eg:
127.0.0.1:6379> hgetall userChung:002
1) "name"
2) "HarborChung"
3) "age"
4) “2"
 
 
 
 
 
 
 
 
 
 
 
 
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-317167-1-1.html 上篇帖子: 大家好,我目前是两台服务器都通过jedispool调用一个redis,jedis的MaxActive我设置的很大,6W了。但是每隔几天,其中一台服务器就会报Co 下篇帖子: Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式等)介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表