一、redis主要是干嘛的?
-
解决CPU及内存压力(分布式session共享问题)
-
解决IO压力(热点数据加载问题)
二、redis常用的5种数据结构
-
String:底层是简单的动态字符串,类似于ArrayList。采用预分配冗余空间的方式,来减少内存的频繁分配。
-
List:底层是双向链表,是将多个zipList用双向指针连接起来,形成的quickList
-
Set:没有重复元素的集合,底层是一个value为null的hash表,所以增删查时间复杂度都是O(1)
-
Zset:底层是两个数据结构,第一个是hash,用来关联value与score;第二个是跳跃表,用来给value排序后,通过score的范围获取元素列表
-
Hash:当field-value长度较短且个数较少时,使用zipList。否则使用HashTable
三、新增的3种数据结构
- Bitmaps:可用于计算网站的访问量,如果该网站每天独立访问的用户很少,那么用它就不太合适了。
- HyperLogLog:可快速计算基数,eg:数据集{1,3,5,7,5,7,9},它的基数集就是{1,3,5,7,9}
- Geospatial:该类型就是元素的2维坐标,即经纬度。