cakephp - 在 Cakephp 中使用通配符管理 Redis 键

标签 cakephp redis

我使用 cakephp 2 和 redis。

如何通过通配符掩码从缓存中删除所有键? 例如我想通过掩码“prefix_element_group1*”删除所有内容

关于 clearGroup 我知道。 但它只会增加组值以模拟删除组下的所有键旧值将保留在存储中直到它们过期。

至少如何使用掩码获取键列表?类似于redis-cli中的"keys *"

最佳答案

您的问题并非特定于 CakePHP。您可以使用带 eval 的 Lua 脚本删除具有通配符支持的任意键.这是一个 PHP 示例:

$deleteScript = 'return redis.call("DEL", unpack(redis.call("keys", ARGV[1])))';
$redis = getRedisConnection(); // whatever CakePHP provides
$redis->eval($deleteScript, 0, "keyPattern:*");

显然,确切的语法会根据您的特定 Redis 库而有所不同,但希望这会给您正确的想法。

关于cakephp - 在 Cakephp 中使用通配符管理 Redis 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37274406/

相关文章:

CakePhp、Xampp 和 SSL "Internal error has occured"

mysql - CakePHP 3 - MySQL 'BIGINT' 字段在实体中未正确处理

json - 没有 key 的 CakePHP Json 响应

Redis 使用带有 Glob 模式的 SCAN 匹配键来获取命名空间中的项目集合

php - 使用backbone.js 与 php mvc 框架的优点

redis - 如何在redis-cli中查看解码后的消息包数据

node.js - 不同服务器上的 Socket.IO 房间

javascript - 快速 session 无法设置未定义的属性 'id'

即使值存在,redis get 也会返回 null

cakephp - 对图像中的表格进行排序