Linux——redis理论、安全模型

一、redis 主要的data type

  1. redis 的原生客户端
  2. redis 支持通过python php golang 等语言连接
  3. redis 主要适用场景

二、redis如何进行数据存储

  1. 非关系数据库    不使用二维表   redis 使用键值对完成数据的存储
  2. redis一共有16个库 ,不同的库使用编号   0-15
  3. redis 在存储每一个键值对的时候,为键分配对应的slot
  4. redis优先在内存中完成数据的读取 写入 修改等操作   // redis 数据操作速度很快
  5.  redis的服务端进程在运行期间向操作系统申请内存,保存数据,一旦服务端进程停止,操作系统给进程分配的内存等系统资源都会回收,重新启动redis 服务端之后,进程再次向操作系统申请内存,操作系统将给进程 分配新的内存页,如果redis只在内存中保存数据那么就很容易发生数据丢失。内存属于易失性存储。
  6. 基于5的问题,redis 提出了数据持久化的策略
    • rdb   redis database 对数据进行快照,并保存到指定文件,再重启后从指定的快照文件恢复数据    
      1. rdb 持久化在大部分情况下都是默认启用
      2. save 时间:以秒为单位  次数:数据变更操作的次数     //在规定时间间隔中,数据变更的次数达到指定次数,则对redis进行快照.快照由bgsave 指令完成
      3. rdb文件名称  rdbfilename
      4. 文件的保存位置 dir
      5. 在每一次redis 服务端进程停止的时候,自动执行一个bgsave 更新rdb数据快照
    • aof   append only file 持续追踪redis数据变更,并将数据变更的指令写入aof文件中,所以aof 文件实际是记录redis数据操作的日志文件
      1. aof持久化在更新aof文件,有三种策略   appendfsync
        1. no      使用操作系统默认时间设置更新AOF文件,一般在linux操作系统中为半个小时       更新需要的时间更久,也比较容易发生数据丢
### Redis Reactor 网络模型详解 #### 一、Redis为何采用单线程架构 Redis的核心网络模型选择了单线程实现,这一决策起初引发了不少疑问。官方解释指出,在大多数情况下,CPU并不是性能瓶颈所在;真正的挑战在于如何快速响应客户端请求并返回结果。由于现代硬件的发展,内存访问速度远超磁盘读写操作的速度,因此减少上下文切换带来的开销成为提升效率的关键[^1]。 #### 二、Reactor 模型概述 作为一种高效的I/O处理框架,Reactor模式能够很好地适应高并发场景下的数据传输需求。该模型利用事件分发器监听多个输入源的状态变化(如可读、可写),一旦检测到特定条件满足,则立即触发相应的处理器执行预定义的任务逻辑[^2]。 #### 三、Redis 中的文件事件机制 具体来说,当涉及到实际应用层面时,Redis实现了自己的文件事件库——ae_event_loop.c,它负责管理所有的套接字连接以及它们之间发生的交互行为。每当有新的命令到达或者需要向客户发送回复的时候,就会产生对应的文件事件通知给主线程去处理[^3]。 #### 四、Linux 文件描述符与Socket编程基础 值得注意的是,在理解上述过程之前,掌握一些关于Unix/Linux操作系统底层的知识是非常必要的。比如什么是文件描述符?怎样通过socket API建立TCP/IP通信链路?还有就是熟悉几种常见的I/O多路复用技术,像`select()`函数可以同时监视若干个文件句柄上的活动情况,而更先进的`epoll()`则提供了更好的扩展性和更低延迟特性[^4]。 ```c // 使用 epoll 创建一个监听实例 int epfd = epoll_create(EPOLL_SIZE); struct epoll_event ev; ev.events = EPOLLIN | EPOLLET; // 边缘触发模式 ev.data.fd = listen_fd; if (epoll_ctl(epfd, EPOLL_CTL_ADD, listen_fd, &ev) == -1){ perror("epoll set insertion error"); } ``` #### 五、总结 综上所述,借助于精心设计的Reactor模式加上对系统资源的有效调度策略,使得即使是在单一工作进程中也能展现出令人满意的吞吐量表现。与此同时,这样的结构简化了内部同步控制流程的设计难度,并且有助于提高整体系统的稳定性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值