Redis散列表(hash)使用

Redis有5种常用的数据结构,分别为:string(字符串),list(列表),hash(哈希表或散列表),set(集合)和zset(有序集合)。5种数据结构指的是作为键值对的值存在于Redis库中的形态,顾名思义,string字符串的value值是以字符串结构存在的;hash散列表的value是一个hash散列表。

散列表简单说明

Redis的散列(hash)表会将一个键和一个散列表在数据库中关联起来,用户可以在散列表中为任意多个字设置值。与字符串键值对一样,散列表里面的字段和值既可以是文本数据,可以是二进制数据。

通过使用散列表,用户可以把相关联的多项数据存储到同一个散列里面,以便对这些数据进行管理,或者针对他们进行批量操作。

上图可以看到,字符串键值对的值是一个单字符串形态的存在;而散列表的value值是一个散列表,或称为哈希表,散列表内部的字段和值对照关系就与字符串的键值对类似了。

Redis为散列舰提供了一系列操作命令,通过这些命令用户可以:

  • 为散列的字段设置值,或者只在字段不存在的情况下为他设置值从散列表里面获取给定字段的值。
  • 对存储着数字值的字段执行加法操作或者减法操作。
  • 检查给定字段是否存在于散列表当中。
  • 从散列表中删除指定字段。
  • 查看散列表包含的字段数量。
  • 一次为散列表的多个字段设置值或一次从散列表中获取多个字段的值。
  • 获取散列表包含的所有字段,所有值或者所有字段和值。

散列表命令说明

hset:为字段设置值

用户可以通过执行hset命令为散列表中的指定字段设置值。

hset key field value

根据给定的字段是否已经存在于散列中命令的执行也会有所不同:

  • 如果给定字段并不存在于散列当中,那么这次设置就是一次创建操作命令,将在散列里面关联起给定的字段和值,然后返回1。
  • 如果给定的字段原本已经存在于散列当中,那么这次设置就是一次更新操作命令,将使用用户给定的新值去覆盖字段原有的旧址,然后返回0。

上图示例可以看到,在给student_zhangsan第一次设置age字段为14时,因为散列表中没有age字段,字段age属于第一次创建,命令执行完成后返回的是1;待第二次给age再设置值为16时,因为age已经存在于散列表中,命令执行时候,新的字段值16会覆盖掉旧的字段值14,并返回0。


hsetnx:只在字段不存在的情况下为它设置值

hsetnx命令的作用和hset命令的作用非常相似,都是给散列表的字段设置值。他们的不同之处在于,hsetnx命令只会在指定字段不存在的情况下执行设置操作。

hsetnx key field value

hsetnx命令在字段不存在并且设置成功时返回值1;在字段存在并导致设置失败时返回值0。


hget:

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值