它是一个基于内存的数据结构存储,用于作数据库,缓存,消息中间件
总的来说:它是基于 内存,用于缓存,支持多种数据结构
它的存储方式是key-value的形式
java的Map和Redis的区别:
java的map是本地缓存,缓存不具有一致性,每个实例都各自保存一份缓存(Java实现的Map不是专业做缓存的,JVM内存太大容易挂掉的。一般用做于容器来存储临时数据,缓存的数据随着JVM销毁而结束。Map所存储的数据结构,缓存过期机制等等是需要程序员自己手写的。)
Redis是分布式缓存,缓存具有一致性,每个实例都共享一份缓存(Redis是专业做缓存的,可以用几十个G内存来做缓存。Redis一般用作于缓存,可以将缓存数据保存在硬盘中,Redis重启了后可以将其恢复。原生提供丰富的数据结构、缓存过期机制等等简单好用的功能)
-
Redis 可以用几十 G 内存来做缓存,Map 不行,一般 JVM 也就分几个 G 数据就够大了
-
Redis 的缓存可以持久化,Map 是内存对象,程序一重启数据就没了
-
Redis 可以实现分布式的缓存,Map 只能存在创建它的程序里
-
Redis 可以处理每秒百万级的并发,是专业的缓存服务,Map 只是一个普通的对象
-
Redis 缓存有过期机制,Map 本身无此功能
-
Redis 有丰富的 API,Map 就简单太多了