redishash
hash指令
键指令 | 作用 | 例子 | 返回值 | 序号 |
HDEL | 删除一个或多个哈希表字段 | HDEL KEY_NAME FIELD1.. FIELD | 被成功删除字段的数量,不包括被忽略的字段。 | 0 |
HEXISTS | 查看哈希表 key 中,指定的字段是否存在 | HEXISTS KEY_NAME FIELD_NAME | 如果哈希表含有给定字段,返回 1 。 如果哈希表不含有给定字段,或 key 不存在,返回 0 | 1 |
HGET | 获取存储在哈希表中指定字段的值 | HGET KEY_NAME FIELD_NAME | 返回给定字段的值。如果给定的字段或 key 不存在时,返回 nil | 2 |
HGETALL | 获取在哈希表中指定 key 的所有字段和值 | HGETALL KEY_NAME | 以列表形式返回哈希表的字段及字段值。 若 key 不存在,返回空列表 | 3 |
HINCRBY | HINCRBY key field increment 为哈希表 key 中的指定字段的整数值加上增量 increment 。 | HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER | 执行 HINCRBY 命令之后,哈希表中字段的值 | 4 |
HINCRBYFLOAT | 为哈希表 key 中的指定字段的浮点数值加上增量 increment 。 | HINCRBYFLOAT KEY_NAME FIELD_NAME increment | 执行 Hincrbyfloat 命令之后,哈希表中字段增加后的值 | 5 |
HKEYS | 获取所有哈希表中的字段 | HKEYS KEY_NAME | 包含哈希表中所有域(field)列表。 当 key 不存在时,返回一个空列表。 | 6 |
HLEN | 获取哈希表中字段的数量 | HLEN KEY_NAME | 哈希表中字段的数量。 当 key 不存在时,返回 0 | 7 |
HMGET | 获取所有给定字段的值 | HMGET KEY_NAME FIELD1...FIELD | 一个包含多个给定字段关联值的表,表值的排列顺序和指定字段的请求顺序一样 | 8 |
HMSET | 同时将多个 field-value (域-值)对设置到哈希表 key 中 | MSET KEY_NAME FIELD1 VALUE1 ...FIELD VALUEN | 如果命令执行成功,返回 OK | 9 |
HSET | 将哈希表 key 中的字段 field 的值设为 value | HSET KEY_NAME FIELD VALUE | 如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 | 10 |
HSETNX | 只有在字段 field 不存在时,设置哈希表字段的值 | HSETNX KEY_NAME FIELD VALUE | 设置成功,返回 1 。 如果给定字段已经存在且没有操作被执行,返回 0 | 11 |
HVALS | 获取哈希表中所有值 | HVALS KEY_NAME | 一个包含哈希表中所有值的列表。 当 key 不存在时,返回一个空表 | 12 |
HSCAN | 迭代哈希表中的键值对 | HSCAN KEY_NAME cursor [MATCH pattern] [COUNT count] | 返回的每个元素都是一个元组,每一个元组元素由一个字段(field) 和值(value)组成 | 13 |
代码实践
HDEL
RedisClient.HSet(ctx,"hash","username","aaaa","password","xsdsdsas","age","19")
result, err := RedisClient.HDel(ctx, "hash", "age", "password").Result()
if err != nil {
logrus.Error(err)
}
logrus.Info(result) // 被成功删除的字段的数量
HEXISTS
res,err := RedisClient.HExists(ctx,"hash","password").Result()
if err != nil {
logrus.Error(err)
}
logrus.Info(res) // false 已删除password字段
HGET
res,err := RedisClient.HGet(ctx,"hash","username").Result()
if err != nil {
logrus.Error(err)
}
logrus.Info(res) // 如果字段不存在,报错,返回nil
HGETALL
res,err := RedisClient.HGetAll(ctx,"hash").Result()
if err != nil {
logrus.Error(err)
}
logrus.Info(res) // 返回整个列表,如果key不存在,返回空列表
HINCRBY
res,err := RedisClient.HIncrBy(ctx,"hash","age",2).Result()
if err != nil {
logrus.Error(err)
}
logrus.Info(res) // 该字段需要是整数型,即使该字段不存在,也可以增加
HINCRBYFLOAT
res,err := RedisClient.HIncrByFloat(ctx,"hash","age",0.12).Result()
if err != nil {
logrus.Error(err)
}
logrus.Info(res) // 该字段需要是整数型或者是浮点数,即使该字段不存在,也可以相加
HKeys
res,err := RedisClient.HKeys(ctx,"hash").Result()
if err != nil{
logrus.Error(err)
}
logrus.Info(res) // 当前hash key的所有字段,如果key不存在,则返回空数组
HLEN
res,err := RedisClient.HLen(ctx,"hash").Result()
if err != nil{
logrus.Error(err)
}
logrus.Info(res) // key的所有字段的数量,如果key不存在,则返回0
HMGET
res,err := RedisClient.HMGet(ctx,"hash","x","age").Result()
if err != nil{
logrus.Error(err)
}
logrus.Info(res) // 返回所有要求查询的字段,如果字段不存在,返回nil
HMSET
res,err := RedisClient.HMSet(ctx,"hash","x","1","y","2").Result()
if err != nil{
logrus.Error(err)
}
logrus.Info(res) // 执行成功返回 true,否则false
HSET
res,err := RedisClient.HSet(ctx,"hash","z","1","a","4").Result()
if err != nil{
logrus.Error(err)
}
logrus.Info(res) //如果字段是哈希表中的一个新建字段,并且值设置成功,返回1,如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0
HSETNX
res,err := RedisClient.HSetNX(ctx,"hash","t","102").Result()
if err != nil{
logrus.Error(err)
}
logrus.Info(res) //设置成功,返回true,如果给定字段已经存在且没有操作被执行,返回 false,只有在字段 field 不存在时,返回true
HVALS
res,err := RedisClient.HVals(ctx,"hash").Result()
if err != nil{
logrus.Error(err)
}
logrus.Info(res) // 返回hash表中所有的值列表
HSCAN
res,Cursor, err := RedisClient.HScan(ctx,"bank", 0, "*B*", 8000).Result()
if err != nil{
logrus.Error(err)
}
logrus.Info(res) // 返回匹配的字段和值
logrus.Warn(Cursor)
本文由 李阿斗创作 旅途愉快~ 我的主页 ( ̄▽ ̄)
最后编辑时间为:
2022/06/04 22:17
大哥带带我