早期的redis是进程内的字典列表操作,后面改成TCP网络调用

简单的操作的话完全没必要保存到硬盘,但是他这个历史资料可查,多个网站管理,后台还是少不了数据库的

antirez 设计 Redis 时的核心考量 ------把高频的实时操作放在内存扛性能,把需要持久化的历史资料、多网站管理数据放回数据库做存储 ,本质是「内存 + 磁盘」的分层存储思路,刚好契合LLOOGG.com的业务场景。

LLOOGG.com的核心痛点本就是实时的访客记录推入 / 弹出 :每个网站的最新 10000 条记录需要高频读写、先进先出,这部分放 MySQL 会被硬盘 I/O 拖垮,所以 Redis 原型用纯内存做这个环节,O (1) 的操作速度直接解决高并发;但多网站的基础配置、非实时的历史统计数据、长期的访问归档这些内容,本身读写频率低、需要持久化和复杂的查询管理,完全没必要占宝贵的内存,交给 MySQL 这类磁盘数据库处理才合理。

甚至 Redis 后来加入持久化功能(RDB/AOF),也不是为了替代数据库做全量存储,只是为了防止内存数据丢失 ------ 比如重启后能恢复最新的实时数据,而真正的历史资料、后台管理的核心数据,依然要落地到传统数据库,这也是现在互联网系统「缓存 + 数据库」架构的雏形。

简单说就是各司其职:Redis 扛高频实时的简单操作,数据库存需要长期保留、复杂管理的历史 / 配置数据,既解决性能问题,又满足后台管理和历史可查的需求。

一、LLOOGG.com解决负载的早期实验原型:接近 PHP+C 本地调用,无 TCP 端口

antirez 最初为解决LLOOGG.com的 MySQL 性能问题,编写的内存数据库原型本地级别的 C 语言实现 ,结合LLOOGG.com作为 PHP 开发的 Web 网站的特性,这个原型大概率是以C 扩展(非 DLL,Linux 环境下为 so 库) 的形式供 PHP 调用:

  1. 运行方式:PHP 作为 Web 开发语言,通过加载 C 语言编写的本地扩展,直接调用内存中的列表操作逻辑,属于进程内 / 本地调用,无需通过 TCP 端口进行网络通信;
  2. 无独立服务:此时还没有 Redis 的独立服务形态,只是为 PHP 网站定制的本地性能优化组件,自然不存在 TCP 端口监听;
  3. 核心目的:仅解决 PHP 网站中 "列表推入 / 弹出" 的本地性能问题,避开 MySQL 的硬盘 I/O 瓶颈,无需网络交互能力。

二、正式版 Redis(2009 年诞生):独立 C 语言服务,核心基于 TCP 端口通信

antirez 在原型验证可行后,用 C 语言重写并增加持久化、网络通信等功能,正式诞生的 Redis 与 "PHP+C DLL、无 TCP 端口" 完全不符,核心特性为:

  1. 独立的 C 语言服务进程:Redis 是完全脱离 PHP 的独立服务,并非 PHP 的扩展 / DLL,可单独启动、运行,支持跨语言、跨进程调用;
  2. 默认基于 TCP 端口通信 :Redis 从 1.0 版本开始就默认监听TCP 6379 端口,通过自定义的 RESP 协议实现客户端与服务端的网络通信,这是 Redis 作为 "远程字典服务" 的核心基础;
  3. 支持多种通信方式 :除了 TCP 端口,Redis 还支持 Unix 域套接字(本地通信,无需端口),但这是可选方式,并非默认,而 TCP 端口是其实现分布式、跨机器调用的核心;
  4. 与 PHP 的关系是 "客户端调用" :PHP 需通过 Redis 客户端(如 phpredis 扩展)连接 Redis 的 6379 端口,才能操作 Redis 数据,属于网络远程调用,而非本地 C 扩展调用。

补充:关于 "DLL" 的误区

antirez 开发 Redis 的环境是Linux(VPS) ,Linux 系统中 C 语言编写的动态库为so 文件,而非 Windows 下的 DLL 文件;Redis 本身也从未提供过 DLL 版本的核心服务,仅 Windows 下有第三方移植的客户端工具,核心服务仍以 Linux 为主。

总结

表格

阶段 运行形态 与 PHP 的交互方式 是否使用 TCP 端口
LLOOGG.com原型阶段 PHP 的 C 本地扩展(so 库) 进程内本地调用
正式版 Redis(2009+) 独立 C 语言服务进程 跨进程网络调用 是(默认 6379)

简单来说:最初为 PHP 网站写的优化原型确实是本地 C 扩展、无 TCP 端口 ,但正式版 Redis 是独立的 TCP 网络服务,与 PHP 是客户端 - 服务端的远程调用关系,并非 PHP 的扩展 / DLL。

相关推荐
晴天¥4 分钟前
达梦数据库的内存结构
服务器·数据库·达梦数据库
倔强的石头_11 分钟前
生产环境排坑实录:SQL 标量子查询的“静默杀手”与优化器的智能推演
数据库
阿Y加油吧13 分钟前
两道位运算 / 摩尔投票经典题复盘:只出现一次的数字 & 多数元素
数据结构·算法·leetcode
Evand J19 分钟前
【课题推荐】三模型IMM交互式多模型滤波算法,匀速/左转/右转目标跟踪,附MATLAB代码测试结果
算法·matlab·目标跟踪·无人机·imm·多模型
05候补工程师42 分钟前
【408狂飙·数据结构】核心考点深度复盘:数组地址计算、特殊矩阵压缩存储与树的五大性质解题直觉
数据结构·笔记·线性代数·考研·算法·矩阵
Navicat中国1 小时前
使用 SSL/TLS 安全连接数据库
数据库·安全·ssl
heimeiyingwang1 小时前
【架构实战】MySQL主从复制与读写分离:数据库高可用架构
数据库·mysql·架构
Cosolar1 小时前
2026年全球向量数据库技术全景与架构演进深度解析报告
数据库·人工智能·架构·agent·智能体
IronMurphy1 小时前
Redis拷打第七讲(最终章)
数据库·redis·php