redis操作hash类型的基本命令

    hash类型,用于存储对象,当定义hash类型的变量时,要遵循变量的命名规范,对象名:分组来命名,例如,user:1,user:2等,这里不推荐使用user_1这样的命名方式,因为下划线容易和数据库表中表名发生冲突,推荐使用冒号,redis数据存储中帮我们以定义的对象名为根目录存储,分组呢,就是根目录的二级目录,string类型中,就是单纯的操作单个字符串,而hash类型呢存储的是对象,我们对对象添加多个属性等,接下来我们看看hash的常用命令

 

  • hset 对象名 属性名 值(就是往一个对象的属性中设置)

127.0.0.1:6379> hset user:1 id 1
(integer) 1
127.0.0.1:6379> keys *
1) "user:1"
127.0.0.1:6379>

 

  • hmset  对象名 属性名 值...(同时为对象设置多个属性值)

127.0.0.1:6379> hmset user:1 name iosoft2020 age 18
OK
127.0.0.1:6379> keys *
1) "user:1"

 

  • hget 对象名 属性名 (就是得到对象中的单个属性中的值)

127.0.0.1:6379> hget user:1 id
"1"

 

  • hmget 对象名 属性名... (就是得到对象中的多个属性中的值)

127.0.0.1:6379> hmget user:1 name age
1) "iosoft2020"
2) "18"

  • hgetall 对象名 (就是得到对象中的所有属性中的值)

127.0.0.1:6379> hgetall user:1
1) "id"
2) "1"
3) "name"
4) "iosoft2020"
5) "age"
6) "18"

    这里需要注意的是,它的返回结果是,属性名,值...

 

  • hdel 对象名 属性值(删除对象中的属性值)

127.0.0.1:6379> hdel user:1 age
(integer) 1
127.0.0.1:6379> hgetall user:1
1) "id"
2) "1"
3) "name"
4) "iosoft2020"
127.0.0.1:6379>

    这里需要注意的是,它和del key的命令非常相像,del key呢,它是删除这个key的值,而hdel呢,它是删除对象属性的值,这里大家最好区分一下,del key的例子

127.0.0.1:6379> keys *
1) "user:1"
127.0.0.1:6379> del user:1
(integer) 1
127.0.0.1:6379> keys *
(empty array)

 

  • hlen 对象名(它是获取对象中有多少个属性)

127.0.0.1:6379> hset user:2 id 2
(integer) 1
127.0.0.1:6379> hmset user:2 name iosoft2020 age 20
OK
127.0.0.1:6379> hgetall user:2
1) "id"
2) "2"
3) "name"
4) "iosoft2020"
5) "age"
6) "20"
127.0.0.1:6379> hlen user:2
(integer) 3

 

  • hsetnx 对象名 属性 值(这里和string类型中setnx一样,当给对象设置属性时,存在的话,返回0,当属性不存在时,返回1,并添加属性值)

127.0.0.1:6379> hgetall user:2
1) "id"
2) "2"
3) "name"
4) "iosoft2020"
5) "age"
6) "20"

127.0.0.1:6379> hsetnx user:2 id 2
(integer) 0
127.0.0.1:6379> hsetnx user:2 sex F
(integer) 1
127.0.0.1:6379>

127.0.0.1:6379> hgetall user:2
1) "id"
2) "2"
3) "name"
4) "iosoft2020"
5) "age"
6) "20"
7) "sex"
8) "F"

 

  • hincrby 对象名 属性 加几(对对象属性中加几的处理)

127.0.0.1:6379> hincrby user:2 age 1
(integer) 21

127.0.0.1:6379> hgetall user:2
1) "id"
2) "2"
3) "name"
4) "iosoft2020"
5) "age"
6) "21"
7) "sex"
8) "F"

 

  • hincrbyfloat 对象名 属性(float类型) 加几(对对象float属性中加几的处理)

127.0.0.1:6379> hset user:2 www 1.1
(integer) 0
127.0.0.1:6379> hgetall user:2
 1) "id"
 2) "2"
 3) "name"
 4) "iosoft2020"
 5) "age"
 6) "21"
 7) "sex"
 8) "F"
 9) "www"
10) "1.1"
127.0.0.1:6379> hincrbyfloat user:2 www 5
"6.1"
127.0.0.1:6379> hget user:2 www
"6.1"

 

  • hexists 对象名 属性 (是否存在,这里和exists命令的区别是,一个是key是否存在,而hexists是对象中属性是否存在,存在则返回1,不存在返回0)

127.0.0.1:6379> hexists user:2 www
(integer) 0
127.0.0.1:6379> hexists user:2 age
(integer) 1

    常用的命令,暂时总结到这里,再有补充的话,我也会随时更新。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值