最近去面试,面试官都会先问:Redis中有哪些数据类型?接着就会问Redis各种数据类型底层结构,会问如果要统计用户活跃数、用户登录数等有没有好的方案等等,现在一块来了解下。
一、Redis支持的数据类型
Redis 主要有以下几种数据类型:
String
字符串对象Hash
哈希Map对象List
列表对象Set
集合对象ZSet
有序集合
还有三种特殊数据类型:
geospatial
: Redis 在 3.2 推出 Geo 类型,该功能可以推算出地理位置信息,两地之间的距离。hyperloglog
:基数:数学上集合的元素个数,是不能重复的。这个数据结构常用于统计网站的 UV(访问次数)。bitmap
: bitmap 就是通过最小的单位 bit 来进行0或者1的设置,表示某个元素对应的值或者状态。一个 bit 的值,或者是0,或者是1;也就是说一个 bit 能存储的最多信息是2。bitmap 常用于统计用户信息比如活跃粉丝和不活跃粉丝、登录和未登录、是否打卡等。
补充说明:
基数是一种算法。举个例子 一本英文著作由数百万个单词组成,你的内存却不足以存储它们,那么我们先分析下业务。英文单词本身是有限的,在这本书的几百万个单词中有许许多多重复单词,扣去重复的单词,这本书中也就 千到 万多个单词而己&