简介:
Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
一、String
Redis 字符串数据类型的相关命令用于管理 redis 字符串值
类比Java:HasMap<String, Object>
Object -->
1、字符串(String)
基本操作:
应用场景:
(1)、分布式锁:SETNX(Key, Value),释放锁:DEL(Key)
2、数值(Number)
基本操作:
应用场景:
(1)、文章的浏览量,视频的观看量
(2)、全局序列
3、二进制(bit)
基本操作:
应用场景:
(1)、存储图片
(2)、用户在线统计
二、HashMap
Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象
类比Java:HashMap<String, HashMap<String, Object>>
key - field - value 结构
基本操作:
优点:
(1)、将信息凝聚在一起,便于管理
(2)、从一定上避免误操作,减少key冲突
(3)、减少内存/IO/CPU的消耗
应用场景:
(1)、购物车功能
三、List
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
类比Java:HasMap<String, List>
基本操作:
应用场景:
(1)、消息队列
(2)、新闻推荐
四、Set
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据
类比Java:HasMap<String, HashSet>
基本操作:
应用场景:
(1)、抽奖
(2)、点赞,转发,收藏
集合运算:
应用场景:
(1)、共同关注
(2)、可能认识的人
(3)、我关注的人也关注了他
(4)、商品筛选
五、ZSet
Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员
基本操作:
集合运算:
应用场景:
(1)、排行榜,热搜榜
(2)、周榜,月榜,年榜
如有补充,还请不吝赐教~~