Hash哈希
简介
redis的无序字典是一个string类型的field和value的映射表,内部结构类似HashMap。每个hash可以存储2^32-1个键值对(40多亿)
原理
底层的实现结构,与HashMap也一样,是“数组+链表”的二维结构,第一维hash的数据位置碰撞时,将碰撞元素用链表串起来,不同的是,redis字典的值只能是字符串,而且两者的rehash方式不同。java的hashmap是一次全部rehash,耗时较高,redis为优化性能,采用渐进式rehash策略。具体方式为,同事保留新旧两个hash结构,然后逐步搬迁,搬迁完成后再取而代之。
命令
- 存取数据
hset 使用方式: hset hash1 key1 value1
hget 使用方式: hget hash1 key1 => "value1"
hsetnx 如果不存在即set新的key值
2.遍历数据
hkeys hash 查看所有的key
hvals hash 查看所有的value
hlen hash1 查看hash的长度
hgetall hash1 返回所有的key和value
hexists hash1 key1 判断某个key是否存在1存在 0不存在
3.批量操作
hmset hash1 key1 value1 key2 value2
hmget hash1 key1 key2 key3
4 变更数据
hdel hash1 key1
hincrby 对整数的增加操作 使用方式hincrby key keyfield num
网友评论