Redis散列类型
Redis是采用字典结构以键值对的形式存储数据的,而散列类型(hash)的键值也是一种字典结构,其存储了字段和字段值的映射,但字段值只能是字符串,不支持其他数据类型,也就是说,散列类型不能嵌套其他的数据类型。一个散列类型键可以包含至多2^32-1个字段。
除了散列类型,Redis的其他数据类型同样不支持数据类型嵌套。比如集合类型的每个元素只能是字符串,不能是一个集合或者散列表等。
散列类型适合存储对象:使用对象类别和ID构成建名,使用字段表示对象的属性,而字段值存储属性值。例如要存储ID为2的汽车对象,可以分别使用名为color、name和price的三个字段来存储该汽车的颜色、名称和价格。
1、基本命令
例如现在要存储ID为1的文章,分别有title、author、time、content
则键为post:1,字段分别为title、author、time、content,值分别为“the first post”、“me”、“2014-03-04”、“This is my first post.”,存储如下
redis 127.0.0.1:6379> hmset post:1 title "the first post" author "JoJo" time 2016/08/25 content "this is my first post" OK
这里使用的是hmset命令,具体散列的基本赋值命令如下:
hset key field value
#例如hset post:2 title “second post”
hget key field
#例如hget post:2 title,获取id为2的post的title值
hmset key field value [field value ...]
#这个同上,批量存值
hmget key field [field ...]
#批量取值,取得列表
例:
redis 127.0.0.1:6379> hmget post:1 time author 1) "2016/08/25" 2) "JoJo"
hgetall key
#取得key所对应的所有键值列表,这里给出个例子
redis 127.0.0.1:6379> hgetall post:1 1) "title" 2) "the first post" 3) "author" 4) "JoJo" 5) "time" 6) "2016/08/25" 7) "content" 8) "this is my first post"
2、判断是否存在
hexists key field
如果存在返回1,否则返回0(如果键不存在也返回0)。
3、当字段不存在时赋值
hsetnx key field value
这个和hset
的区别就是如果字段存在,这个命令将不执行任何操作,但是这里有一个区别就是Redis提供的这些命令都是原子操作,不会产生数据不一致问题。
例:
redis 127.0.0.1:6379> hexists post:1 time (integer) 1 //判断是存在time字段的 redis 127.0.0.1:6379> hsetnx post:1 time 2016/08/26 (integer) 0 //不存在的话,设置time,存在的话返回0,值不变,原始值 redis 127.0.0.1:6379> hget post:1 time "2016/08/25" redis 127.0.0.1:6379> hsetnx post:1 age 23 (integer) 1 //不存在age字段,返回1,并设置age字段 redis 127.0.0.1:6379> hget post:1 age "23"
4、增加数字
hincrby key field number
这里就和incry
命令类似了。
例:
redis 127.0.0.1:6379> hincrby post:1 age 2 (integer) 25
5、删除字段
hdel key field [field ...]
删除字段,一个或多个,返回值是被删除字段的个数。
6、其他命令
hkeys key
#获取字段名
hvals key
#获取字段名
示例如下:
redis 127.0.0.1:6379> hkeys post:1 1) "title" 2) "author" 3) "time" 4) "content" 5) "age" redis 127.0.0.1:6379> hvals post:1 1) "the first post" 2) "JoJo" 3) "2016/08/25" 4) "this is my first post" 5) "25"
最后还有一个就是获取字段数量的命令:
hlen key
返回字段的数量
redis 127.0.0.1:6379> hlen post:1 (integer) 5
总结
以上就是Redis中散列类型常用命令的全部内容了,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]