String-字符串
字符串类型是redis中最为基础的数据结构。
- 存储最简单的key-value结构
- value可以为字符串、整型或浮点型
- 对于整型或浮点型可以执行自增或自减操作
使用场景
- 常用的缓存功能:利用redis做缓存,配合其他数据库,可以大大加快系统的读写速度
- 计数器:例如web应用,想要统计用户每日的点击量,只需要将用户ID加上时间戳做key,并在用户每次点击时,向redis发送INCR命令,执行一次自增即可。最终的数据结果可以在特点的时间点比如0点持久化到其他存储介质中。
- 共享用户session:用户每次刷新页面,可能都需要重新登录或者读取cookie中的登录信息,也可以利用redis统一管理用户的session信息,只需要保证redis的高可用即可。
Hash-字典
- hash类型用于存储对象,对象的结构为属性,值
- 值的类型为string
- 设置单个属性语法:hset key field value,设置多个属性语法:hmset key field1 value1 field2 value2….
使用场景
- 存储用户信息,能够单独修改用户的某一属性信息
List-列表
- redis使用的是双端链表实现的list
- list的元素类型为string
- 按照插入的顺序排序
- 插入语法:lpush/rpush key value1 value2….
- 弹出元素:blpop/brpop key index timeout
使用场景
- 消息队列:可以利用redis 的*push的操作将任务存在list中,工作线程再用b*pop的操作取出任务执行
- 文章列表或记录事件的timeline等:利用的redis的list存储不但有序,取出时使用*range命令可以按范围取出元素
Set-集合
- 无序集合
- 元素为string类型
- 元素具有唯一性
- 集合没有修改操作
- 可以计算交集、并集,差集
使用场景
- 计算共同好友,共同浏览过的商品等:例如将两个用户浏览过的商品集合做交集,即可得到共同浏览过的商品
- 统计访问网站的所有独立IP
- 好友推荐:利用用户的tag求交集,按照业务需求分析交集内容,可做好友推荐等类型功能
Zset-有序集合
- sorted set,有序集合
- 元素为string类型
- 元素具有唯一性
- 每个元素都会关联一个double类型的score,表示权重,会按权重从小到大排序
- 没有修改操作
使用场景
- 排行榜:自带去重排序功能,可以根据需求,比如使用点击量访问量等作为score
正文完