string类型:它是一个二进制安全的字符串,意味着它不仅能够存储字符串、还能存储图片、视频等多种类型, 最大长度支持512M
hash类型:该类型是由field和关联的value组成的map。其中,field和value都是字符串类型的。
list类型:该类型是一个插入顺序排序的字符串元素集合, 基于双链表实现。
Set类型:Set类型是一种无顺序集合, 它和List类型最大的区别是:集合中的元素没有顺序, 且元素是唯一的。Set类型主要应用于:在某些场景,如社交场景中,通过交集、并集和差集运算,通过Set类型可以非常方便地查找共同好友、共同关注和共同偏好等社交关系。
ZSet类型:ZSet是一种有序集合类型,每个元素都会关联一个double类型的分数权值,通过这个权值来为集合中的成员进行从小到大的排序。与Set类型一样,其底层也是通过哈希表实现的。
Bloom过滤器:布隆过滤器是最具代表性的概率数据结构,最大的缺点是无法删除项目
1. 检查用户名可用性2. 欺诈检测和缓解某些类型的网络攻击3. 跟踪已知URL的Web爬虫
开启ReBloom插件
布谷鸟 > 布隆
1. 删除项目2. 更快的查找(因为更好的内存位置)3. 空间效率(当目标错误率低于3%时)4. 更快的插入(当过滤器的填充率低于80%时)
布谷鸟 < 布隆
1. 你的填充率超过80%;布谷鸟过滤器的插入速度很快就会低于布隆。2. 你有更宽松的目标错误率(大于3%),使布谷鸟过滤器的空间效率降低3. 你需要高度可预测的行为:布谷鸟过滤器在插入过程中使用随机源来提供性能改进