# 五种基本数据类型

字符串String、列表List、字典Hash、集合Set、有序集合SortedSet

# string

string 简单动态字符串SDS

# hash

底层实现:压缩列表,哈希表

存放的是结构化的对象

我在做单点登录的时候,就是用这种数据结构存储用户信息,以 CookieId 作为 Key,设置 30 分钟为缓存过期时间,能很好的模拟出类似 Session 的效果。

# List

底层实现:压缩列表,链表

使用 List 的数据结构,可以做简单的消息队列的功能。rpush+blpop实现先进先出;另外还有一个就是,可以利用 lrange 命令,做基于 Redis 的分页功能,性能极佳,用户体验好。

# set

底层实现:hash表(不带value)

  • 全局去重的功能;因为 Set 堆放的是一堆不重复值的集合。所以可以做全局去重的功能
  • 利用交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能。

# ZSet

底层实现:跳表

  • Sorted Set多了一个权重参数 Score,集合中的元素能够按 Score 进行排列。
  • 可以做排行榜应用,取 TOP N 操作。
  • Sorted Set 可以用来做延时任务。最后一个应用就是可以做范围查找。

# 其他一些数据结构

HyperLogLog、Geo、Pub/Sub

# Redis Module

BloomFilter,RedisSearch,Redis-ML