zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Redis 的介绍

Redis 介绍
2023-09-11 14:21:18 时间

总所周知Redis是一种非关系性数据库且其可以实现高性能和高并发,其为什么其可以实现高性能和高并发呢?其实现高性能的原因是其是基于内存操作且采用单线程多路复用IO技术,正因为其是基于内存操作的故其也支持高并发。但其也存在一些缺陷如缓存雪崩、缓存穿透、数据不一致的问题。

Redis 实现高性能和高并发的原因(主要是查询操作)
  • 假设在一个系统中,如果有些数据访问量很大且不经常变化,然后他从数据库中查询速度又很慢。这时我们就可以引入缓存在我们第一次查询数据库之后把这数据加载到缓存中,这样下一个用户来查此数据的时候就很快了。这样就实现了高性能了。
  • Redis 支持高并发的原因:假设在中午高峰期数据库的访问量达到了4000每秒如果数据库配置低的话,肯定支持不了这高并发的。这时就可以引入缓存把数据加载到缓存中。从而提高并发能力。
Reids 概叙

Redis是一个Key-Value 的数据库,且其操作都是原子性的。为了保证效率其数据都是存储在内存中的Redis会周期性的把更新的数据写入到磁盘或者把修改操作写入追加的记录文件,并且在此基础山提供了主从同步。在Redis中又16个数据库,初始状态默认选中0号为默认数据库(可以用 select 8 进行数据库切换)。 Redis 为啥是高效的?

  • Redis 基于内存操作的
  • 采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,以及频繁的加锁和互斥。
  • 采用多路复用IO技术,串行化,可以处理并发连接
  • Redis 基于Reactor模式开发了网络事件处理器,这个处理器又叫文件事件处理器。它是单线程的且采用IO多路复用技术来监听多个socket,根据socket上的事件来选择对应的事件处理器。
  • 如果被监听的socket准备好执行accept,read,writer,close等操作的时候与其对应的文件事件就会产生,这个时候事件处理器就会调用之前关联好的事件来处理
  • Redis 客户端与 Redis Server 直接建立

在这里插入图片描述
1、Redis Client 向 Redis Server 发送请求建立连接,从而在 Redis Client 向 Redis Serve 创建对应的Socket 。