qmegas / memcache-search
用于搜索memcache键的PHP库
0.1.3
2023-07-18 11:30 UTC
Requires
- php: >=7.1
This package is not auto-updated.
Last update: 2024-09-24 16:58:53 UTC
README
PHP库,允许在memcache中搜索键。它使用lru_crawler
非阻塞机制在memcache键之间迭代。此库不需要安装memcache扩展。
为什么它比其他解决方案更好?
- 标准的
Memcached
扩展具有getAllKeys
函数,该函数基于memcached_dump
函数,这并不能保证导出所有键。此外,据报道,从memcache 1.4.23开始,此函数不再工作。 - 标准的
Memcache
扩展没有此类功能,并且有不同的 解决方案,这些解决方案基于stats cachedump
,这会对memcache服务器性能产生影响,并且同样不能保证导出所有键。
安装
composer require qmegas/memcache-search
要求
- PHP >= 7.1
- Memcache服务器应在类Unix系统上运行,且版本应>= 1.4.24
使用示例
<?php $search = new \Qmegas\MemcacheSearch(); $search->addServer('127.0.0.1', 11211); //Inline search in key name $find = new \Qmegas\Finder\Inline('test'); foreach ($search->search($find) as $item) { echo "Key: {$item->getKey()} expires ".($item->getExpiration() === -1 ? 'NEVER' : 'on '.date('d/m/Y H:m:i', $item->getExpiration()))."\n"; } //Inline search in key name - method 2 foreach ($search->search('test') as $item) { ... } //Searching for non expiring items $find = new \Qmegas\Finder\ExpiresNever(); foreach ($search->search($find) as $item) { ... } //Searching in name by using regular expression $find = new \Qmegas\Finder\RegExp('/Test([0-9]*)/i'); foreach ($search->search($find) as $item) { ... } //Custom search logic foreach ($search->search(function(\Qmegas\MemcacheItem $item): bool { //Your logic is here }) as $item) { ... }
许可
该库是开源软件,许可协议为MIT协议。