目录
1.什么是哈希表?缺点是什么?
2.Redis的数据类型(type、encoding)
3.比较常用命令、使用场景、实现方式
1.什么是哈希表?缺点是什么?
把关键字key映射到表中记录的地址。映射关系是散列函数,存放记录的数组是散列表。
缺点:会出现哈希冲突、rehash开销。
哈希冲突 -->开放定址法-->链式哈希(冲突时在原地址增加一个链表)(Redis采用链式哈希)
rehash开销-->hash扩容
2.Redis的数据类型(type、encoding)
type是redis的数据类型,encoding是不同数据类型在Redis内部的存储方式
3.对比常用命令、使用场景、实现方式
type | 常用命令 | 使用场景 | 实现方式 | encoding |
string | set,get,mset,mget | incr,decr时int | ||
hash | hmset,hmget,hdel,hlen | 存储对象 | hashmap | zipmap --> ht |
list | lpush,rpush,lpop,rpop,lrange | 关注列表,粉丝列表 | 双向链表,便于查找 | |
set | sadd | 共同好友 | ||
sorted set | zadd, | 排行榜 |
4.Redis为什么提供Hash?
参考文章:
哈希表(HashTable)
为什么redis中提供hash数据类型?
什么是CAS?存在哪些问题?