为了方便复习redis的数据类型,根据网络文章整理一份。
一、Redis 字符串(String)
字符串类型是最基础的类型,在redis里面字符串可以存储3中类型的值,字节串、整数、浮点数。
这里整数或者浮点数是可以执行自增或自减的。
使用场景:
- 计数
- 分布式锁
- 缓存数据
二、Redis 列表(List)
列表类似于数据结构的链表,可以给定int范围去显示这个列表中的数据。
列表允许用户从序列的两端推入或者弹出元素,获取列表元素。
列表的一个主要优点在于他可以包含多个字符串值,而且都集中在一个区域,而且多个字符串是可以重复的。
使用场景:
- 存储任务信息
- 最近浏览过的文章
- 联系人信息
- 消息队列
三、Redis 哈希(Hash)
redis的哈希可以存储多个键值对之间的映射。
哈希在很多方面就像一个微缩版的redis,不少字符串命令都有相应的哈希版本。
一个key name的哈希中,有多个key-value对。我们可以把这种数据聚集看做是关系库中的行。
使用场景:
- 存储对象(频繁增删)
- 购物车
- 关系数据库的缓存
四、Redis 集合(Set)
redis的集合以无序的方式来“存储多个各不相同”的元素,用户可以快速地对集合执行“添加元素”操作、“移除元素”操作以及“检查一个元素是否存在”于集合中。
集合跟列表不同之处在于,列表可以存储多个相同的字符串,而集合则通过使用Hash来保证存储的字符串各不相同(这些Hash只有key,并没有与key相关联的value)。
使用场景:
- 计算交集、并集、差集
- 共同好友
- 利用唯一性,统计访问网站的所有独立IP
- 好友推荐时,根据tag求交集,大于某个阈值就可以推荐
五、Redis 有序集合(sorted set)
“有序集合”相比“集合”多出一个分值(score),分值必须为浮点数。有序集合既可以根据成员访问,又可以根据分值或分值的排列顺序来访问的结构。
使用场景:
- 排行榜
- 带权重的消息队列
内容来自: