扫码关注微信公众号
回复“面试手册”,获取本站PDF版
回复“简历”,获取高质量简历模板
回复“加群”,加入程序员交流群
回复“电子书”,获取程序员类电子书
Redis的常见的数据类型有String、Hash、Set、List、ZSet。还有三种不那么常见的数据类型:Bitmap、HyperLogLog、Geospatial。
数据类型 | 可以存储的值 | 可进行的操作 | 应用场景 |
---|---|---|---|
STRING | 字符串、整数、浮点数 | 对整数或浮点数可以进行自增、自减操作 对字符串操作 | 键值对缓存及常规计数: 微博数, 粉丝数 |
LIST | 列表(内部使用双向列表实现) | 向列表两端添加元素,或者获得列表的某一个片段 | 存储文章ID列表、存储评论列表等 |
SET | 无序集合(内部使用值为空的散列表) | 增加/删除元素、获取集合中元素、取交集并集等等 | 共同好友、共同关注等 |
ZSET | 有序集合(内部使用散列表和跳表) | 添加、获取、删除元素 根据分值范围或者成员来获取元素 计算一个键的排名 | 去重、获取排名前几的用户 |
HASH | 包含键值对的无序散列表 | 添加、获取、移除单个键值对 获取所有键值对 检查某个键是否存在 | 常用于存储对象 |
Bitmap:位图,是一个以位为单位的数组,数组中只能存储1或0,数组的下标在Bitmap中叫做偏移量。Bitmap实现统计功能,更省空间。面试中常问的布隆过滤器就有用到这种数据结构,布隆过滤器可以判断出哪些数据一定不在数据库中,所以常被用来解决Redis缓存穿透问题。
Hyperloglog:HyperLogLog 是一种用于统计基数的数据集合类型,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数。HyperLogLog 的优点是,在输入元素的数量或者体积非常大时,计算基数所需的空间总是固定 的、并且是很小的。缺点是 HyperLogLog 的统计规则是基于概率完成的,所以它给出的统计结果是有一定误差的,标准误算率是 0.81%。常见的应用场景:统计网站的UV
Geospatial:主要用于存储地理位置信息,常用于定位附近的人,打车距离的计算等。
本站链接:https://www.mianshi.online,如需勘误或投稿,请联系微信:lurenzhang888
点击面试手册,获取本站面试手册PDF完整版