Redis学习之旅 Hash篇
Hash结构就是在redis本身 的K-V结构基本上,又提供了一个K-V结构,通常用来保存对象结构比较合适,但是不宜将对象结构弄的过大
命令学习
redis-cli模式下键入 help @hash就可以快速相关的命令集合
hash是从2.0开始加入到redis中的,因此从2.0开始总结
2.0时代/3.0时代
hash命令自2.0加入后,在3.2版本新增了一个命令后,就没再更新过,因此合并汇总
命令 | 起始版本 | 作用 | 示例 |
---|---|---|---|
HDEL | 2.0.0 | 删除某些key下的KV | HDEL key field [field …] |
HEXISTS | 2.0.0 | 判断hashKey是否存在 | HEXISTS key field |
HGET | 2.0.0 | get HashKey对应的Value | HGET key field |
HGETALL | 2.0.0 | 获取整个key下的所有K-V | HGETALL key |
HINCRBY | 2.0.0 | HashKey对应的Value自增某个数 | HINCRBY key field increment |
HINCRBYFLOAT | 2.6.0 | HashKey对应的Value自增某个浮点数 | HINCRBYFLOAT key field increment |
HKEYS | 2.0.0 | 获取所有的Key | HKEYS key |
HLEN | 2.0.0 | 获取键下的K的个数 | HLEN key |
HMGET | 2.0.0 | 批量获取一组值 | HMGET key field [field …] |
HSCAN | 2.8.0 | 查找键是否存在 | HSCAN key cursor [MATCH pattern] [COUNT count] |
HSET | 2.0.0 | 写入一组KV | HSET key field value [field value …] |
HSETNX | 2.0.0 | 不存在才写入KV | HSETNX key field value |
HSTRLEN | 3.2.0 | 获取对应Value的长度,同String | HSTRLEN key field |
HVALS | 2.0.0 | 获取一组值的集合 | HVALS key |
关注点
Keys Scan
- 这里的操作都不复杂,逻辑同string非常相近,只是在它的key的基础上,每一个元素又是一个KV对象 ,拥有自己的小Key,因此想具体定位一个元素,需要两个key
- 重点需要注意keys会引起redis阻塞,强烈不建议在线上调用,通常都是建议使用scan类的命令去查找键,负作用就是可能会得到重复的key,需要自己做下去重