扫码关注微信公众号

回复“面试手册”,获取本站PDF版

回复“简历”,获取高质量简历模板

回复“加群”,加入程序员交流群

回复“电子书”,获取程序员类电子书

当前位置: 计算机基础 > Redis高频面试题 > 7.Redis的数据类型有哪些?

Redis的常见的数据类型有String、Hash、Set、List、ZSet。还有三种不那么常见的数据类型:Bitmap、HyperLogLog、Geospatial

数据类型可以存储的值可进行的操作应用场景
STRING字符串、整数、浮点数对整数或浮点数可以进行自增、自减操作
对字符串操作
键值对缓存及常规计数: 微博数, 粉丝数
LIST列表(内部使用双向列表实现)向列表两端添加元素,或者获得列表的某一个片段存储文章ID列表、存储评论列表等
SET无序集合(内部使用值为空的散列表)增加/删除元素、获取集合中元素、取交集并集等等共同好友、共同关注等
ZSET有序集合(内部使用散列表和跳表)添加、获取、删除元素
根据分值范围或者成员来获取元素
计算一个键的排名
去重、获取排名前几的用户
HASH包含键值对的无序散列表添加、获取、移除单个键值对
获取所有键值对
检查某个键是否存在
常用于存储对象
Redis的数据类型

Bitmap:位图,是一个以位为单位的数组,数组中只能存储1或0,数组的下标在Bitmap中叫做偏移量。Bitmap实现统计功能,更省空间。面试中常问的布隆过滤器就有用到这种数据结构,布隆过滤器可以判断出哪些数据一定不在数据库中,所以常被用来解决Redis缓存穿透问题。

Hyperloglog:HyperLogLog 是一种用于统计基数的数据集合类型,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数。HyperLogLog 的优点是,在输入元素的数量或者体积非常大时,计算基数所需的空间总是固定 的、并且是很小的。缺点是 HyperLogLog 的统计规则是基于概率完成的,所以它给出的统计结果是有一定误差的,标准误算率是 0.81%。常见的应用场景:统计网站的UV

Geospatial:主要用于存储地理位置信息,常用于定位附近的人,打车距离的计算等。


点击面试手册,获取本站面试手册PDF完整版