Redis原理详解

Redis是一个开源的内存数据库系统,提供多种数据结构并支持IO多路复用,适用于高速缓存、session共享、分布式场景。其单线程模型、数据淘汰策略和持久化机制是其性能关键。文章详细探讨了Redis的出现背景、应用场景、架构原理、IO多路复用、速度优势、数据淘汰、数据类型及常见问题解决方案。
摘要由CSDN通过智能技术生成

目录

1、什么是redis

2、为什么会出现redis

3、应用场景 

 4、架构原理

5、IO多路复用机制

6、redis为什么快

7、redis 数据淘汰策略

8、数据类型以及使用场景

9、持久化流程

10、常见问题解决方案


1、什么是redis

  • Redis是一个开源key-value存储系统。
  • 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。
  • 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
  • 在此基础上,Redis支持各种不同方式的排序
  • 与memcached一样,为了保证效率,数据都是缓存在内存中。
  • 区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
  • 并且在此基础上实现了master-slave(主从)同步。

2、为什么会出现redis

Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。

随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。

解决cpu及内存压力

 解决IO压力

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库

NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。

  1. 不遵循SQL标准。
  2. 不支持ACID。
  3. 远超于SQL的性能。
  4. 对数据高并发的读写
  5. 海量数据的读写
  6. 对数据高可扩展性的。

所以出现了内存数据库,如redis,memcache、mongoDB等。 

3、应用场景 

1、配合关系型数据库做高速缓存

  • 高频次,热门访问的数据,降低数据库IO
  • 分布式架构,做session共享

多样的数据结构存储持久化数据

 

 4、架构原理

Redis 组件的系统架构如图所示,主要包括事件处理、数据存储及管理、用于系统扩展的主从复制/集群管理,以及为插件化功能扩展的 Module System 模块。

事件处理机制

Redis 中的事件处理模块,采用的是作者自己开发的 ae 事件驱动模型,可以进行高效的网络 IO 读写、命令执行,以及时间事件处理。

其中,网络 IO 读写处理采用的是 IO 多路复用技术,通过对 evport、epoll、kqueue、select 等进行封装,同时监听多个 socket,并根据 socket 目前执行的任务,来为 socket 关联不同的事件处理器。

当监听端口对应的 socket 收到连接请求后,就会创建一个 client 结构,通过 client

  • 8
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值