RedisEngine 类
Redis 缓存引擎。
属性摘要
-
$_Redis 受保护的
Redis
Redis 包装器。
-
$_config 受保护的
array<string, mixed>
运行时配置
-
$_configInitialized 受保护的
布尔值
配置属性是否已使用默认值进行配置
-
$_defaultConfig 受保护的
array<string, mixed>
除非由运行时配置覆盖,否则使用的默认配置
-
$_groupPrefix 受保护的
字符串
包含所有组前缀的编译字符串,这些前缀将被附加到此缓存引擎中的每个键
方法摘要
-
__destruct() 公开的
断开与 Redis 服务器的连接
-
_configDelete() 受保护的
删除单个配置键。
-
_configRead() 受保护的
读取配置键。
-
_configWrite() 受保护的
写入配置键。
-
_connect() 受保护的
连接到 Redis 服务器
-
_connectPersistent() 受保护的
使用持久连接连接到 Redis 服务器。
-
_connectTransient() 受保护的
使用新连接连接到 Redis 服务器。
-
_createRedisInstance() 受保护的
创建新的 Redis 实例。
-
_key() 受保护的
生成缓存后端使用的键。
-
add() 公开的
如果键不存在,则将键的数据写入缓存。如果键已存在,则失败并返回 false。
-
clear() 公开的
删除缓存中的所有键
-
clearBlocking() 公开的
通过阻塞操作从缓存中删除所有键
-
clearGroup() 公开的
增加组值以模拟删除组下所有键,旧值将保留在存储中,直到它们过期。
-
configShallow() 公开的
将提供的配置与现有配置合并。与
config()
不同,config()
对嵌套键进行递归合并,此方法进行简单合并。 -
decrement() 公开的
减少缓存整数键的值并更新过期时间
-
delete() 公开的
从缓存中删除一个键
-
deleteAsync() 公开的
异步从缓存中删除一个键
-
deleteMultiple() 公开的
作为列表删除多个缓存项
-
duration() 受保护的
将 TTL 值的各种表达式转换为以秒为单位的持续时间
-
ensureValidKey() 受保护的
确保给定缓存键的有效性。
-
ensureValidType() 受保护的
确保参数类型和缓存键的有效性。
-
get() 公开的
从缓存中读取一个键
-
getConfig() 公开的
返回配置。
-
getConfigOrFail() 公开的
返回此特定键的配置。
-
getMultiple() 公开的
通过其唯一键获取多个缓存项。
-
groups() 公开的
返回每个已配置组的
组值
如果未找到组初始值,则会相应地初始化该组。 -
has() 公开的
确定缓存中是否存在项目。
-
increment() 公开的
增加缓存整数键的值并更新过期时间
-
init() 公开的
初始化缓存引擎
-
serialize() 受保护的
序列化要保存到 Redis 的值。
-
set() 公开的
将键的数据写入缓存。
-
setConfig() 公开的
设置配置。
-
setMultiple() 公开的
在缓存中持久化一组键 => 值对,并带有可选的 TTL。
-
unserialize() 受保护的
反序列化从 Redis 获取的字符串值。
-
warning() 受保护的
如果在操作期间遇到故障,缓存引擎可能会触发警告,如果 option warnOnWriteFailures 设置为 true。
方法详细信息
_configDelete() ¶ 受保护的
_configDelete(string $key): void
删除单个配置键。
参数
-
字符串
$key 要删除的键。
返回
空
抛出
Cake\Core\Exception\CakeException
如果尝试覆盖现有配置
_configWrite() ¶ 受保护的
_configWrite(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void
写入配置键。
参数
-
array<string, mixed>|string
$key 要写入的键。
-
混合
$value 要写入的值。
-
字符串|布尔值
$merge 可选 True 表示递归合并,'shallow' 表示简单合并,false 表示覆盖,默认为 false。
返回
空
抛出
Cake\Core\Exception\CakeException
如果尝试覆盖现有配置
_connectPersistent() ¶ 受保护的
_connectPersistent(string $server, array $ssl): bool
使用持久连接连接到 Redis 服务器。
参数
-
字符串
$server 要连接的服务器。
-
数组
$ssl SSL 上下文选项。
返回
布尔值
抛出
RedisException
_connectTransient() ¶ protected
_connectTransient(string $server, array $ssl): bool
使用新连接连接到 Redis 服务器。
参数
-
字符串
$server 要连接的服务器。
-
数组
$ssl SSL 上下文选项。
返回
布尔值
抛出
RedisException
_key() ¶ protected
_key(string $key): string
生成缓存后端使用的键。
如果请求的键有效,则应用组前缀值和引擎前缀。键中的空格将被替换。
参数
-
字符串
$key 传递的键
返回
字符串
抛出
Cake\Cache\Exception\InvalidArgumentException
如果键的值无效。
add() ¶ public
add(string $key, mixed $value): bool
如果键不存在,则将键的数据写入缓存。如果键已存在,则失败并返回 false。
默认为非原子实现。子类应优先使用原子实现。
参数
-
字符串
$key 数据的标识符。
-
混合
$value 要缓存的数据。
返回
布尔值
链接
clearGroup() ¶ public
clearGroup(string $group): bool
增加组值以模拟删除组下所有键,旧值将保留在存储中,直到它们过期。
每个实现都需要决定是实际删除键还是仅仅增加组生成值来达到相同的结果。
参数
-
string
$group 要清除的组的名称
返回
布尔值
configShallow() ¶ public
configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this
将提供的配置与现有配置合并。与config()
不同,config()
对嵌套键进行递归合并,此方法进行简单合并。
设置特定值
$this->configShallow('key', $value);
设置嵌套值
$this->configShallow('some.nested.key', $value);
同时更新多个配置设置
$this->configShallow(['one' => 'value', 'another' => 'value']);
参数
-
array<string, mixed>|string
$key 要设置的键,或完整配置数组。
-
mixed|null
$value optional 要设置的值。
返回
$this
decrement() ¶ public
decrement(string $key, int $offset = 1): int|false
减少缓存整数键的值并更新过期时间
参数
-
字符串
$key 数据的标识符
-
int
$offset optional 减去多少
返回
int|false
deleteAsync() ¶ public
deleteAsync(string $key): bool
异步从缓存中删除一个键
只从缓存中解除键链接。实际删除将在稍后异步进行。
参数
-
字符串
$key 数据的标识符
返回
布尔值
deleteMultiple() ¶ public
deleteMultiple(iterable<string> $keys): bool
作为列表删除多个缓存项
这是尽力而为的尝试。如果删除项目会产生错误,它将被忽略,所有项目都将被尝试。
参数
-
iterable<string>
$keys 要删除的基于字符串的键列表。
返回
布尔值
抛出
Cake\Cache\Exception\InvalidArgumentException
如果 $keys 不是数组也不是 Traversable,或者如果任何 $keys 不是合法值。
duration() ¶ protected
duration(DateInterval|int|null $ttl): int
将 TTL 值的各种表达式转换为以秒为单位的持续时间
参数
-
DateInterval|int|null
$ttl 此项目的 TTL 值。如果发送 null,将使用驱动程序的默认持续时间。
返回
int
ensureValidKey() ¶ protected
ensureValidKey(mixed $key): void
确保给定缓存键的有效性。
参数
-
mixed
$key 要检查的键。
返回
空
抛出
Cake\Cache\Exception\InvalidArgumentException
当键无效时。
ensureValidType() ¶ protected
ensureValidType(iterable $iterable, string $check = self::CHECK_VALUE): void
确保参数类型和缓存键的有效性。
参数
-
iterable
$iterable 要检查的迭代器。
-
string
$check optional 是否检查键或值。
返回
空
抛出
Cake\Cache\Exception\InvalidArgumentException
get() ¶ public
get(string $key, mixed $default = null): mixed
从缓存中读取一个键
参数
-
字符串
$key 数据的标识符
-
mixed
$default optional 如果键不存在,则返回的默认值。
返回
混合
getConfig() ¶ public
getConfig(string|null $key = null, mixed $default = null): mixed
返回配置。
用法
读取整个配置
$this->getConfig();
读取特定值
$this->getConfig('key');
读取嵌套值
$this->getConfig('some.nested.key');
使用默认值读取
$this->getConfig('some-key', 'default-value');
参数
-
string|null
$key optional 要获取的键,或整个配置的 null。
-
mixed
$default optional 当键不存在时的返回值。
返回
混合
getConfigOrFail() ¶ public
getConfigOrFail(string $key): mixed
返回此特定键的配置。
此键的配置值必须存在,它永远不能为 null。
参数
-
字符串
$key 要获取的键。
返回
混合
抛出
InvalidArgumentException
getMultiple() ¶ public
getMultiple(iterable<string> $keys, mixed $default = null): iterable<string, mixed>
通过其唯一键获取多个缓存项。
参数
-
iterable<string>
$keys 可以通过单个操作获取的键列表。
-
mixed
$default optional 对于不存在的键返回的默认值。
返回
iterable<string, mixed>
抛出
Cake\Cache\Exception\InvalidArgumentException
如果 $keys 不是数组也不是 Traversable,或者如果任何 $keys 不是合法值。
has() ¶ public
has(string $key): bool
确定缓存中是否存在项目。
注意:建议仅将 has() 用于缓存预热类型目的,不要在您的实时应用程序操作中使用它来获取/设置,因为此方法容易出现竞争条件,您的 has() 会返回 true,并且立即之后,另一个脚本可以删除它,使您的应用程序状态过时。
参数
-
字符串
$key 缓存项键。
返回
布尔值
抛出
Cake\Cache\Exception\InvalidArgumentException
如果 $key 字符串不是合法值。
increment() ¶ public
increment(string $key, int $offset = 1): int|false
增加缓存整数键的值并更新过期时间
参数
-
字符串
$key 数据的标识符
-
int
$offset optional 增加多少
返回
int|false
init() ¶ public
init(array<string, mixed> $config = []): bool
初始化缓存引擎
由缓存前端自动调用
参数
-
array<string, mixed>
$config optional 引擎设置数组
返回
布尔值
serialize() ¶ protected
serialize(mixed $value): string
序列化要保存到 Redis 的值。
这是必需的,而不是使用 Redis 的内置序列化功能,因为它会导致最初设置的整数值增加/减少时出现问题。
参数
-
混合
$value 要序列化的值。
返回
字符串
链接
set() ¶ public
set(string $key, mixed $value, DateInterval|int|null $ttl = null): bool
将键的数据写入缓存。
参数
-
字符串
$key 数据的标识符
-
混合
$value 要缓存的数据
-
DateInterval|int|null
$ttl optional 可选。此项目的 TTL 值。如果未发送任何值,并且驱动程序支持 TTL,则库可能会为其设置默认值,或者让驱动程序处理它。
返回
布尔值
setConfig() ¶ public
setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this
设置配置。
用法
设置特定值
$this->setConfig('key', $value);
设置嵌套值
$this->setConfig('some.nested.key', $value);
同时更新多个配置设置
$this->setConfig(['one' => 'value', 'another' => 'value']);
参数
-
array<string, mixed>|string
$key 要设置的键,或完整配置数组。
-
mixed|null
$value optional 要设置的值。
-
bool
$merge optional 是否递归合并或覆盖现有配置,默认为 true。
返回
$this
抛出
Cake\Core\Exception\CakeException
当尝试设置无效的键时。
setMultiple() ¶ public
setMultiple(iterable $values, DateInterval|int|null $ttl = null): bool
在缓存中持久化一组键 => 值对,并带有可选的 TTL。
参数
-
iterable
$values 用于多重设置操作的键 => 值对列表。
-
DateInterval|int|null
$ttl optional 可选。此项目的 TTL 值。如果未发送任何值,并且驱动程序支持 TTL,则库可能会为其设置默认值,或者让驱动程序处理它。
返回
布尔值
抛出
Cake\Cache\Exception\InvalidArgumentException
如果 $values 不是数组也不是 Traversable,或者如果任何 $values 不是合法值。
unserialize() ¶ protected
unserialize(string $value): mixed
反序列化从 Redis 获取的字符串值。
参数
-
string
$value 要反序列化的值。
返回
混合
warning() ¶ protected
warning(string $message): void
如果在操作期间遇到故障,缓存引擎可能会触发警告,如果 option warnOnWriteFailures 设置为 true。
参数
-
string
$message 警告信息。
返回
空
属性详情
$_defaultConfig ¶ 受保护的
除非由运行时配置覆盖,否则使用的默认配置
database
用于连接的数据库编号。duration
指定此缓存配置中项目的持续时间。groups
与存储在此配置中的每个键关联的组或“标签”列表。方便从缓存中删除整个组。password
Redis 服务器密码。persistent
使用持久连接连接到 Redis 服务器。port
Redis 服务器的端口号。tls
使用 TLS 连接到 Redis 服务器。prefix
附加到所有条目的前缀。当您需要与另一个缓存配置或另一个应用程序共享键空间时非常有用。scanCount
每次扫描请求的键数(默认:10)server
Redis 服务器主机 URL 或 IP。timeout
超时时间(以秒为单位)(浮点数)。unix_socket
Unix 套接字文件路径(默认:false)
类型
array<string, mixed>