1.redis概述
1.1 简介
截止到2021年12月 数据库排名https://db-engines.com/en/ranking
- redis(Remote Dictionary Server) 一个开源的key-value存储系统
- 它支持存储的Value类型:包括String(字符串),list(链表),set(集合),zset(sorted set 有序集合),hash(哈希类型)。都支持push/pop、add/romove,获取交集、并集、差集等一些相关操作,操
作是原子性的。 - redis支持各种不同方式的排序
- redis (与memcatched相同)数据存在内存中
- redis会周期性的把更新的数据写入磁盘,或者把修改的操作追加到记录文件
- redis支持集群,实现master-slave(主从)同步操作
1.2 应用场景
缓存:配合关系型数据库做高速缓存
计数器:进行自增自减运算
时效性数据:利用expire过期,例如手机验证码功能
海量数据统计:利用位图,存储用户是否是会员、日活统计、文章已读统计、是否参加过某次活动
会话缓存:使用redis统一存储多台服务器用到的session信息
分布式队列/阻塞队列:通过List双向链表实现读取和阻塞队列
分布式锁: 使用redis自带setnx命令实现分布式锁
热点数据存储:最新文章、最新评论,可以使用redis的list存储,ltrim取出热点数据,删除旧数据
社交系统:通过Set功能实现,交集、并集实现获取共同好友,差集实现好友推荐,文章推荐
排行榜:利用sorted-set的有序性,实现排行榜功能,取top n
延迟队列:利用消费者和生产者模式实现延迟队列
去重复数据:利用Set集合,去除大量重复数据
发布/订阅消息:pub/sub模式