[clue/redis-server]我们小心翼翼的宣布用纯PHP开发了一个Redis服务器

2022-03-17 奥古斯宏
一个使用纯PHP开发的Redis服务器项目

无论是学习中还是工作中,我们经常听到Redis这个东西,似乎他能让你的网站更快,能解决高并发问题,能让程序员更酷。

实际上确实是的,Redis是一个给予内存的Key-value存储系统。他可以让我们实现高速的缓存读取,实现一个稳定的队列。你值得了解它,也应该了解它。

当我们把PHP和Redis一起讨论的时候,总是在聊PHP的Redis扩展,如何使用单例去更优雅的使用Redis,但是你有没有想过用PHP开发一个Redis呢?今天就让小编给大家介绍一下这个项目:clue/redis-server。

clue/redis-server是一个用PHP开发的Redis,是的,使用PHP开发的。实际上有很多Redis的变种,比如有人用go也做过Redis。这是一个值得学习的项目,他不是在简单的做业务,如果感兴趣可以多了解一下。

项目目标

目前项目已经实现了一下目标:

  • 使用Redis协议实现内存数据存储
  • 兼容常见的Redis客户端
  • 兼容redis-cli
  • 通过redis基准测试
  • 稳定现代的设计模式/经过测试的模块化组件

目前已经实现了大部分的Redis命令,但是并没有实现全部的标准命令

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。

性能测评

使用redis-benchmark测试性能:

redis-server
root@vultr:~# redis-benchmark -t set,get -p 1338 -q
SET: 159235.66 requests per second
GET: 127388.53 requests per second

php7.4
root@vultr:~# redis-benchmark -t set,get -q
SET: 81900.09 requests per second
GET: 81699.35 requests per second

php8.0
root@vultr:~# redis-benchmark -t set,get -q
SET: 84033.61 requests per second
GET: 86956.52 requests per second

php8.1
root@vultr:~# redis-benchmark -t set,get -q
SET: 84388.19 requests per second
GET: 87565.68 requests per second

小编开通了一个4核8G的Debian11服务器进行测试,PHP直接使用apt 安装使用默认配置,没有进行优化。

我们可以发现使用PHP的性能只有官方Redis的一半。在其他一些人的测试中,有时候性能能达到官方Redis的80%左右。

结尾

那么问题来了,既然已经有了官方的Redis了。什么情况下会需要PHP版本的呢?

作者在Readme文件中也回答了:很简单。根本不需要!

最近浏览
IP用户:66.249.*.*
1 天前 Googlebot
IP用户:223.98.*.*
4 天前 Firefox Windows 10
IP用户:171.114.*.*
4 天前 Microsoft Edge Mac 10.15
IP用户:54.36.*.*
5 天前 aHrefs Bot
IP用户:61.231.*.*
5 天前 Baidu Spider
IP用户:15.223.*.*
5 天前 Firefox GNU/Linux
IP用户:54.217.*.*
5 天前 Opera Windows 10
IP用户:114.119.*.*
9 天前 Petal Bot
IP用户:54.36.*.*
9 天前 aHrefs Bot
IP用户:54.36.*.*
10 天前 aHrefs Bot
IP用户:171.114.*.*
10 天前 Microsoft Edge Mac 10.15
IP用户:185.191.*.*
10 天前 Semrush Bot
累计浏览次数:1366
评论
点击登录
phpreturn,PHP武器库,专注PHP领域的项目和资讯,收录和介绍PHP相关项目。
最近浏览 点击登录
累计浏览次数:89753
一周浏览次数:1683
今日浏览次数:250

本站所有权利归 phpreturn.com 所有

举报/反馈/投稿邮箱:phpreturn@ulthon.com

鲁ICP备19027671号-2