上节课我们学习了Redis的常用数据类型-字符串,我们知道redis支持字符串(strings)、哈希值(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)、bitmaps、hyperloglogs等,这节课我们详细地来学习一下Redis数据类型-哈希(hashes)本章节对应的视频教程已发布到“权威PHP”公众号,想观看视频教程的同学可以到“权威PHP”公众号观看。
哈希(hash)在redis中也是以key/value的形式进行存储数据,hash中的value也是一个key/value的集合体,意思就是hash中的value值也是由多个key、value键值对组合成的。相信大家经常会看到一句话“哈希(hash)特别适合用于存储对象”,就是因为hash的value是由多个key、value键值对组合成,适于存储对象的属性和属性值。以下是给大家整理出来的哈希常用操作命令列表:
hset:设置指定key(键)对应的哈希集合中指定字段值
hmset:同时设置指定key对应的哈希集合中多个指定字段值
hsetnx:设置指定key对应的哈希集合中不存在的字段值
hget:获取指定key对应哈希集合中某字段的值
hmget:同时获取指定key对应哈希集合中多个字段的值
hgetall:获取指定key对应哈希集合中全部字段及字段值
hincrby:增加指定key 对应哈希集合中指定字段的数值
hkeys:获取指定key对应哈希集合中所有字段名
hvals:获取指定key对应哈希集合中所有字段对应值
hexists:判断指定key对应哈希集合中是否存在指定的字段
hlen:获取指定key对应哈希集合中字段数量
hstrlen:获取指定key对应哈希集合中字段value的字符串长度
hdel:删除指定key对应哈希集合中指定的字段内容
全文关键词说明:
1、本文中说的键均指哈希key ,哈希值存储样例标注:
key : {field1:value1,field2:value2}
2、本文中说的哈希集合均指哈希key对应的value,样例中标注:
key :{field1:value1,field2:value2}
3、本文中说的字段均指哈希集合中的key ,样例中标注:
key : {field1:value1,field2:value2}
4、本文中说的字段值均指哈希集合中的value,样例中标注:
key : {field1:value1,field2:value2}
1、hset : 设置指定key(键)对应的哈希集中指定字段值
命令格式:hset key field value
命令参数:
hset 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
value 存储在哈希集合中的字段值
hset 操作的哈希键不存在时会默认新增,然后保存哈希的键和值!设置指定键对应的哈希集合中的字段不存在则新增返回1,如果字段在哈希集合中已存在会覆盖原来字段值。返回0.
2、hmset : 同时设置指定key对应的哈希集合中多个指定字段值
命令格式:hmset key field1 value1 field2 value2 .....
命令参数:
hmset 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
value 存储在哈希集合中的字段值
hmset 操作的哈希键不存在时会默认新增,然后保存哈希的键和值!设置指定键对应的哈希集合中的字段不存在则新增,如果字段在哈希集合中已存在会覆盖原来字段值。注意设置的字段和字段值必须成对出现!
3、hsetnx : 设置指定key对应的哈希集合中不存在的字段值
命令格式:hsetnx key field value
命令参数:
hsetnx 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
value 存储在哈希集合中的字段值
hsetnx 操作的哈希键不存在时会默认新增,然后保存哈希的键和值!设置指定键对应的哈希集合中的字段不存在则新增,如果字段在哈希集合中已存在则放弃操作。
4、hget : 获取指定key对应哈希集合中某字段的值
命令格式:hget key field
命令参数:
hget 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
5、hmget : 同时获取指定key对应哈希集合中多个字段的值
命令格式:hmget key field1 field2 ......
命令参数:
hmget 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
6、hgetall : 获取指定key对应哈希集合中全部字段及字段值
命令格式:hgetall key
命令参数:
hgetall 命令
key 字符串在redis中存储的(哈希)键
7、hincrby : 增加指定key 对应哈希集合中指定字段的数值
命令格式:hincrby key field incrment
命令参数:
hincrby 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
incrment 给存储在哈希集合中数字字段值增加的数
hash操作中提供了hincrby命令,没有像字符串提供那么多对数字操作的命令(hincr、hdecr、hdecrby这些都不存在)。使用hincrby可以增加指定数字也可以减去指定数字,减去使用负数即可。注意hincrby命令不用于字段值为非数字的字符串。
8、hkeys : 获取指定key对应哈希集合中所有字段名
命令格式:hkeys key
命令参数:
hkeys 命令
key 字符串在redis中存储的(哈希)键
9、hvals : 获取指定key对应哈希集合中所有字段对应值
命令格式:hvals key
命令参数:
hvals 命令
key 字符串在redis中存储的(哈希)键
10、hexists : 判断指定key对应哈希集合中是否存在指定的字段
命令格式:hexists key field
命令参数:
hexists 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
注意:hexists操作不存在的哈希key时仍然为空,显示字段不存在。
11、hlen : 获取指定key对应哈希集合中字段数量
命令格式:hlen key
命令参数:
hlen 命令
key 字符串在redis中存储的(哈希)键
12、hstrlen : 获取指定key对应哈希集合中字段value的字符串长度
命令格式:hstrlen key field
命令参数:
hstrlen 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
13、hdel : 删除指定key对应哈希集合中指定的字段内容
命令格式:hdel key field
命令参数:
hdel 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
写到这里hash的常用操作命令就给介绍完了,命令虽然简单想要牢固掌握还需要你动动手自己练习练习哦!想观看本章节对应的视频教程,请到“权威PHP”公众号上观看吧!
推荐阅读文章:
Redis数据类型-字符串详解
轻松搞定Redis的安装
本公众号推送的所有文章都是个人整理不存在抄袭,主要参考资料都来源各技术官方文档及个人学习笔记。交流微信号:QIU15510135007,识别下方二维码关注公众号持续获取更多学习内容!