Redis
1、Redis 可以用几十 G 内存来做缓存,Map 不行,一般 JVM 也就分几个 G 数据就够大了
2、Redis 的缓存可以持久化,Map 是内存对象,程序一重启数据就没了
3、Redis 可以实现分布式的缓存,Map 只能存在创建它的程序里
4、Redis 单点吞吐量能达到10万级,是专业的缓存服务,Map 只是一个普通的对象
5、Redis 缓存有过期机制,Map 本身无此功能
6、Redis 有丰富的 API,Map 就简单太多了
Redis的应用场景
1.缓存数据
最常用,对经常需要查询且变动不是特别频繁的数据 称为热点数据。项目中,如摄像机、设备、报警点数据。
2.计数器
比如统计点击率、点赞率,redis具有原子性,可以避免并发问题。(系统里报警激活数量缓存,否则的话需要每次都要去select count(*) from alarm where active = true)
3.最近访问等功能
比如最新的10条评论,最近浏览过的10件商品(项目中是最近用户最近播放的10个摄像机,key是用户Id,value是资源Id)