主要做数据缓存,redis运行在内存中,数据也保存在内存中。
缓存:让数据离程序更近
一般把redis成为中间件
缓存---让数据离程序更近
NoSQL
NoSQL(Not Only SQL): 泛指非关系型的数据库
关系型数据库: 使用标准得出sql语言进行操作
非关系型数据库:没有固定的关系,以键值对的形式存储。
不是相互替代,是相辅相成的。
Redis
redis:是键值对 存储在内存中也可以存储在硬盘上。
存储结构简单,性能高,易扩展,支持多语言,保证操作原子性,支持多种数据类型。
关系型数据库
关系型数据库: 不能代替,基本数据还是存储在关系型数据库中。
不足: I/O瓶颈
非关系型数据库
非关系型数据库: 结构简单,易扩展,高性能
只适合放简单的数据,不适合放时间太久以及太多的数据
Redis数据类型
redis是键值对 键都是String
5种数据类型指的是值的类型
String(字符串)
Hash(哈希)
List(列表)
Set(集合)
Zset(有序)
6种底层结构
全局哈希表: 存储数据,底层结构是Hash结构,可以通过Key计算出位置,将Key-Value都存储在此位置。
Hash冲突问题: 提供两块内存空间(相当于扩容),将原来的映射渐进式的复制到扩容后的哈希表中,然后释放之前的空间。