开发者学堂课程【Redis 入门到精通(基础篇):数据类型-hash 扩展操作与使用注意事项】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/764/detail/13377
数据类型-hash 扩展操作与使用注意事项
内容介绍
一、Hash 类型数据扩展操作
二、Hash 类型数据操作的注意事项
一、Hash 类型数据扩展操作
获取哈希表中所有的字段或字段值
hkeys key
hvals key
设置指定字段的数值数据增加指定范围的值
hincrby key field increment
hincrbyfloat key field increment
哈希的扩展操作,基于哈希模型,会有一些特殊的扩展操作,接下来看一下这两组操作。
哈希可以获取他自己的所有的键和所有的值,然后把他打印出来,操作一下,hgetall user,然后再次操作 hkeys user,得到 name,age,weight,这就是一个列表,如果要得到值,那么就hvals user,得到纯值,注意,key不会重复,如果有重复,那么就会被覆盖,而val是不会重复的,可以进行修改,hset user weight 38,修改体重为38公斤,然后再次操作 hvals user,得到修改后的值,所以可以得出,使用所有的key使用指令 hkeys,得到所有的值hvals。
如果只有一个key 跟val,那么进行操作,输入hset user2 name zs,然后回车,得到 hkeys user2,此时得到1)name,前面有一个小括号,这是一个列表,在之后的编程操作中,返回就是固定的。
接下来的一组,hincrby user age 1,年龄增加1,回车,得到增加后的数值。
二、Hash 类型数据操作的注意事项
●hash类型下的value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象。如果数据未获取到,对应的值为(nil)
●每个hash可以存储2^32-1个键值对
●hash类型十分贴近对象的数据存储形式,并且可以灵活添加删除对象属性。但hash设计初衷不是为了存储大量对象而设计的,切记不可滥用,更不可以将hash作为对象列表使用
●vegetal 操作可以获取全部属性,如果内部field过多,遍历整体数据效率就会很低,有可能成为数据访问瓶颈
hash类型下的value只能存储字符串,输字也对,不允许嵌套,不能redis装哈希再装小哈希,这样里面就没有,只是一个null,代表没有这一项;
每个哈希的存储是有上限的,编程上面除非是整库的搬家,否则一般是用不完的;
hash类型十分贴近对象的数据存储形式,并且操作十分灵活,比起string操作要灵活的多,并且还可以归为一类,从结构设计上划归一起,最初设计并不是存储对象,所以不要滥用,绝对不能当作存储格式的对象,随着对象的增多效率会变低;
vegetal 操作可以获取全部属性,如果内部field过多,遍历整体数据效率就会很低,有可能成为数据访问瓶颈,我们尽量用哪个拿哪个,如果假设存储了40个,需要14个时,建议单个取出,这样一直getall会影响效率。