1.Redis是一个缓存数据库,主要是做缓存。
什么是缓存?也就是缓冲存储,也可以理解为挡箭牌,对后面的一个保护,一般放在mysql/oracle等数据库前面,对数据库进行一个保护 ,用户请求数据时候,第一次先请求redis,redis里没有,就请求后台mysql数据库,返回数据时候会存放到redis里一份缓存起来,当下一次请求同样数据时候,就可以直接请求redis拿到数据,防止了对数据库的频繁访问,减轻后台数据库的压力
2.Redis是一种内存型的nosql数据库,一般是用来缓存加速的,并且能够支持数据持久化存储的设置,可以将数据持久化到硬盘里面
3.Redis存储数据的方法是以key-value的形式
4.Redis数据类型支持字符串、列表、哈希等多种类型
4.0新增lazzyfree线程,执行unlink key 、 flushdb async等命令
Redis 6.0 多线程是把主线程处理网络IO和协议解析这两件事给了一组独立的线程处理,使得多个 socket 读写可以并行化,但 Redis 命令还是主线程串行执行。
主要流程如下:
1.主线程负责接收并建立(多个)连接请求,获取 socket 后放入全局等待处理队列;
2.主线程处理完这些事件之后,通过RR(Round Robin 轮询)将可读 socket 分配给这些 IO 线程;
3.主线程阻塞,等待 IO 线程完成命令的读取、解析;
4.主线程执行 IO 线程读取和解析出来的 Redis 请求命令,并将结果写到输出缓冲区;
5.主线程阻塞,等待 IO 线程将命令执行结果写回 socket(客户端);
6.主线程执行所有命令并清空整个等待队列,等待客户端后续的请求队列。
Redis优点:
1、具有极高的数据读写速度:数据读取的速度最高可达到110000次/s,数据写入速度最高可达到81000 次/s。
2、支持丰富的数据类型
3、支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使。
4、原子性:Redis所有操作都是原子性的。
5、支持数据备份:即master-salve模式的数据备份