Remote Dictionary Server(远程字典服务器),是一个用C语言编写的、开源的、基于内存运行并支持持久化的、高性能的NoSQL数据库。也是当前热门的NoSQL数据库之一。
官网:https://redis.io/
NoSQL = Not Only SQL(不仅仅是SQL) ,泛指non-relational(非关系型数据库)。
NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。
如Facebook每天为其用户收集万亿比特的数据,这些类型的数据存储不需要固定的模式,无需多 余操作就可以横向扩展
关系型数据库:列+行,同一个表下数据的结构是一样的。
t_student、t_address、t_course
非关系型数据库:数据存储没有固定的格式,并且可以进行横向扩展。
Redis为什么快?
redis之所以快,是因为它是使用C语言写的,C语言运行很快;
内存操作,避免磁盘的io;
单线程操作,避免了频繁的 上下文切换。
Redis特点
1、支持数据持久化
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
2、支持多种数据结构
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
3、支持数据备份
Redis支持数据的备份,即master-slave模式的数据备份。
Redis中的数据大部分时间存储在内存中,适合存储频繁访问、数据量较小的数据!(内存较贵)
Redis也被称为“缓存数据库”
Redis 在 Java Web 主要有两个应用场景:
存储 缓存 用的数据;
需要高速读/写的场合使用它快速读/写;
缓存:
当业务请求一条数据时,会先在redis缓存中查询;如果redis缓存中没有这条数据,会去后端的数据库中查询;
查询到数据后,会将数据返回给客户端,并将此条数据写入redis缓存中。
当下次有相同的请求时,就会直接从redis缓存中读取