redis的前世今生
在了解redis之前,我们需要知道一个常识:
1.硬盘的吞吐大小在百兆到几G之间,而内存在几十个G;
2.硬盘的寻址时间一般在毫秒级别,而内存在纳秒级别。
什么是redis
redis是一个nosql(not only sql)数据库,以 Key-Value 类型的存数据的内存数据库
为什么用redis
早期数据都是以文件的形式存储在磁盘,程序直接全量扫描读取数据,文件越大读取速度越慢。后来使用数据库,比如MySQL,基于索引查询数据,避免了全量扫描,提高速度。但是在并发量极大的情况下,如果索引未命中查询也是会慢。这时就要引入redis,因为redis是存储在内存,而内存的吞吐量大,寻址时间也快,极大的提高数据的读取效率。
redis为什么是nosql
关系型数据库一般要遵循约束或范式,减少数据的冗余。需要考虑到其他数据之间的影响,而redis因为是key-value形式存储数据,只需关注自身,所以无需改成关系型数据。
redis的特点
1.key-value形式存储数据
2.redis读取速度快
3.redis是worker单线程,用户对数据的操作都是单线程执行的。但是6.X的版本支持多线程(IO threads),但是从IO threads读取到的东西又是单线程处理的,所以本质上还是单线程。
4.value有5种类型(string,list,Set,hash,zset),并且每种类型都有自己的本地方法
参考视频:
https://www.bilibili.com/video/BV125411h7cm?p=1