Redis常用数据结构及应用场景

1.总体结构

Redis中的数据,总体上是键值对,不同数据类型指的是键值对中值的类型。

2.string类型

Redis中最基本的类型,它是key对应的一个单一值。二进制安全,不必担心由于编码等问题导致二进制数据变化。所以redis的string可以包含任何数据,比如jpg图片或者序列化的对象。Redis中一个字符串值的最大容量是512M。

3.list类型

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。它的底层是双向链表,所以它操作时头尾效率高,中间效率低(额外花费查找插入位置的时间)。

在Redis中list类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。List中可以包含的最大元素数量是2^32-1个。

list是一个有序可以重复的数据类型。

Redis常用数据结构及应用场景_第1张图片

4.set类型

Redis的set是string类型的无序集合。它是基于哈希表实现的。set类型插入数据时会自动去重。最大可以包含2^32-1个元素。

Redis常用数据结构及应用场景_第2张图片

5.hash类型

本身就是一个键值对集合。可以当做Java中的Map对待。每一个hash可以存储2^32-1个键值对。

Redis常用数据结构及应用场景_第3张图片

6.zset类型

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

Redis常用数据结构及应用场景_第4张图片

7.Geospatial

Redis 在 3.2 推出 Geo 类型,该功能可以推算出地理位置信息,两地之间的距离。

Redis常用数据结构及应用场景_第5张图片

8.HyperLogLogs

用于大数据量基数统计,速度非常快,占用内存非常小。每个HyperLogLog键只需要花费12KB内存,就可以计算接近 2^64个不同元素的基数。比如计算网站UV(User view,用户访问数量,一个用户一天访问同一个URL地址多次合并为一次)。

9.bitmap

直接对string的二进制位进行操作的一组命令

10.常用数据类型应用场景

数据类型 应用场景
string 分布式Session存储
分布式数据库ID
计数器:统计网站访问量
hash 存储对象信息(购物车中的商品信息)
存储表的信息
list 实现队列、栈操作
汇总日志
粉丝列表
关注的人列表
set 签到
打卡
点赞
zset 排行榜
百度热点搜索
geospatial 获取地理位置信息
两地之间的距离
hyperloglogs 基数统计
bitmaps 统计用户访问次数

你可能感兴趣的:(redis,redis,数据结构,java)