设置 key 指定的哈希集中指定字段的值。
HSET key field value
返回值:1代表field是一个新的字段。0代表field已存在
创建一个type为hash类型的key叫myhash,其指定的哈希集中有两个字段username和password,值分别是zhangsan、123456
hset myhash username “zhangsan”
hset myhash password “123456”
接着向myhash的哈希集中再添加两个字段:age和sex
HMSET myhash age 18 sex male
只在 key 指定的哈希集中不存在指定的字段时,设置字段的值。如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联。如果字段已存在,该操作无效果。
含义如下
返回值:
1:如果字段是个新的字段,并成功赋值
0:如果哈希集中已存在该字段,没有操作被执行
已存在username字段,因此设置值将不会生效,返回值为0。username的值还是zhangsan
hsetnx myhash username “lisi”
不存在address字段,因此可以成功设置值,返回值为1。
hsetnx myhash address “china”
查询key指定的哈希集中该字段所关联的值。例如:
1、 获取myhash中的username字段的值,该字段是存在的,返回值即zhangsan
hget myhash username
2、获取myhash中,phone字段的值,该字段不存在,返回值是null
hget myhash phone
获取key指定的哈希集中的所有字段和值。返回值中,每个字段名的下一个是它的值,所以返回值的长度是哈希集大小的两倍
hgetall myhash
获取key指定的哈希集中的指定字段的值。
示例:查看myhash中username和password的值
hmget myhash username password
获取key指定的哈希集中的所有字段名
1、当key指定的哈希集存在时,返回字段名列表。
hkeys myhash
2、当key指定的哈希集不存在时返回空列表。
hkeys myhash1
哈希集里的field是否存在
1、哈希集里存在该field,返回值为1
hexists myhash username
2、哈希集里不存在该field,返回值为0
hexists myhash username1
获取 key 指定的哈希集包含的字段的数量
当key指定的哈希集存在:返回哈希集中字段的数量
当key指定的哈希集不存在:返回 0
如果hash或者field存在:返回hash指定field的value的字符串长度。zhangsan长度是8
如果hash或者field不存在:返回0.
increment可正可负。
age是18,增加10之后是28。
increment是float类型
hincrbyfloat myhash age 10.5
从 key 指定的哈希集中移除指定的字段。在哈希集中不存在的字段将被忽略。
如果 key 指定的哈希集不存在,它将被认为是一个空的哈希集,将会报错
示例:address字段存在,因此返回1,address1字段不存在,因此被忽略了。
例如一张表信息如下
id | username | password | age |
---|---|---|---|
1 | zhangsan | “123456” | 18 |
redis中的strings该怎么存储?怎么方便去获取?
set user:1 “{“id”:1, “username”: “zhangsan”, “password”:“123456”, “age”:18}”
获取user:1的值
hset user:2 id 1 username “zhangsan” password “123456” age 18
hash,相当于把表的行和列旋转了90度。
获取值: