Download the PHP package workbunny/webman-shared-cache without Composer
On this page you can find all versions of the php package workbunny/webman-shared-cache. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Table of contents
Download workbunny/webman-shared-cache
More information about workbunny/webman-shared-cache
Files in workbunny/webman-shared-cache
Download workbunny/webman-shared-cache
More information about workbunny/webman-shared-cache
Files in workbunny/webman-shared-cache
Vendor workbunny
Package webman-shared-cache
Short Description Webman plugin workbunny/webman-shared-cache
License MIT
Package webman-shared-cache
Short Description Webman plugin workbunny/webman-shared-cache
License MIT
Please rate this library. Is it a good library?
Informations about the package webman-shared-cache
workbunny/webman-shared-cache
🐇 A lightweight shared cache for webman plugin. 🐇
A lightweight shared cache for webman plugin
常见问题
1. 它与 Redis/Memcache 的区别
- shared-cache是基于APCu的本地缓存,它的底层是带有锁的MMAP共享内存;
- Redis和Memcache本质上是“分布式”缓存系统/K-V数据库,存在网络IO;
- shared-cache没有持久化,同时也无法实现“分布式”,仅可用于本地的多进程环境(进程需要有亲缘关系);
- shared-cache是μs级别的缓存,redis是ms级别的缓存;
- 网络IO存在内核态和用户态的多次拷贝,存在较大的延迟,共享内存不存在这样的问题;
2. 它的使用场景
- 可以用作一些服务器的本地缓存,如页面缓存、L2-cache;
- 可以跨进程做一些计算工作,也可以跨进程通讯;
- 用在一些延迟敏感的服务下,如游戏服务器;
- 简单的限流插件;
3. 与redis简单的比较
- 运行/tests/simple-benchmark.php
- redis使用host.docker.internal
- 在循环中增加不同的间隔,模拟真实使用场景
- 结果如下:
简介
- 基于APCu拓展的轻量级高速缓存,读写微秒级;
- 支持具备亲缘关系的多进程内存共享;
- 支持具备亲缘关系的多进程限流;
安装
-
自行安装APCu拓展
-
安装composer包
- 使用命令进行php.ini的配置
- 进入 /config/plugin/workbunny/webman-shared-cache 目录
- 运行
使用
注:\Workbunny\WebmanSharedCache\Cache::$fuse为全局阻塞保险
1. Cache基础使用
-
类似Redis的String【使用方法与Redis基本一致】
- 支持 Set/Get/Del/Keys/Exists
- 支持 Incr/Decr,支持浮点运算
- 支持 储存对象数据
- 支持 XX/NX模式,支持秒级过期时间
-
类似Redis的Hash【使用方法与Redis基本一致】
- 支持 HSet/HGet/HDel/HKeys/HExists
- 支持 HIncr/HDecr,支持浮点运算
- 支持 储存对象数据
- 支持 HashKey的秒级过期时间【版本 ≥ 0.5】
-
通配符/正则匹配Search
Tips:Cache::Search()本质上是个扫表匹配的过程,是O(N)的操作,如果需要对特定族群的数据进行监听,推荐使用Channel相关函数实现监听。
-
原子性执行
-
查看cache信息
-
查看锁信息
-
查看键信息
-
清空cache
-
使用Del多参数进行清理
- 使用Clear进行清理
-
2. RateLimiter插件
高效轻量的亲缘进程限流器
- 在/config/plugin/workbbunny/webman-shared-cache/rate-limit.php中配置
- 在使用的位置调用
- 当没有执行限流时,返回空数组
- 当执行但没有到达限流时,返回数组is_limit为false
- 当执行且到达限流时,返回数组is_limit为true
3. Cache的Channel功能
- Channel是一个类似Redis-stream、Redis-list、Redis-Pub/Sub的功能模块
-
一个通道可以被多个进程监听,每个进程只能监听一个相同通道(也就是对相同通道只能创建一个监听器)
-
向通道发布消息
-
临时消息
-
暂存消息
- 指定workerId
-
-
创建通道监听器
- 一个进程对相同通道仅能创建一个监听器
- 一个进程可以同时监听多个不同的通道
- 建议workerId使用workerman的workerId进行区分
-
移除通道监听器
-
移除监听器子通道及子通道内消息
- 移除监听器子通道,但保留子通道内消息
-
其他功能具体可以参看代码注释和测试用例
All versions of webman-shared-cache with dependencies
PHP Build Version
Package Version
Requires
php Version
^8.0
ext-apcu Version *
ext-apcu Version *
The package workbunny/webman-shared-cache contains the following files
Loading the files please wait ....