Redis缓存适配器
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 5.2,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
Redis缓存适配器
另请参阅
本文解释了当在任何PHP应用程序中使用缓存作为独立组件时,如何配置Redis适配器。读了ob娱乐下载Symfony Cache配置文章,如果您在Symfony应用程序中使用它。ob娱乐下载
该适配器使用一个(或多个)将值存储在内存中复述,服务器实例。
不像APCu适配器,与Memcached适配器,不局限于当前服务器的共享内存;您可以独立于PHP环境存储内容。还可以使用服务器集群来提供冗余和/或故障转移。
谨慎
要求:至少一个复述,服务器必须安装并运行才能使用此适配器。此外,此适配器需要实现兼容的扩展或库\复述,
,\ RedisArray
,RedisCluster
,或\ Predis
.
该适配器需要一个复述,,RedisArray,RedisCluster,或Predis作为第一个参数传递的实例。命名空间和默认缓存生存期可以作为第二个和第三个参数传递:
12 3 4 5 6 7 8 9 10 11 12 13 14 15
使用ob娱乐下载\组件\缓存\适配器\RedisAdapter;$缓存=新RedisAdapter (//存储到Redis系统的有效连接的对象\复述,$redisConnection,//存储在这个缓存中的项的键前缀字符串$名称空间=”,//未定义缓存项的默认生存期(秒)//自己的生命周期,值为0会导致项目无限期地存储(例如://直到RedisAdapter::clear()被调用或者服务器被清除$defaultLifetime=0);
配置连接
的createConnection ()helper方法允许创建和配置Redis客户端类实例数据源名称(DSN):
1 2 3 4 5 6
使用ob娱乐下载\组件\缓存\适配器\RedisAdapter;//通过一个DSN字符串向客户端注册一个服务器$客户端= RedisAdapter::createConnection (复述:/ / localhost的);
DSN可以指定IP/主机(和可选端口)或套接字路径,以及密码和数据库索引。为启用TLS连接,该方案复述,
必须由复述,
(第二个年代
意思是“安全的”)。
下面是有效dsn的常见示例,显示可用值的组合:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
使用ob娱乐下载\组件\缓存\适配器\RedisAdapter;//主机“my.server.com”和端口“6379”RedisAdapter::createConnection (“复述:/ / my.server.com: 6379”);//主机“my.server.com”,端口“6379”,数据库索引“20”RedisAdapter::createConnection (“复述:/ / my.server.com: 6379/20”);// host" localhost", auth "abcdef", timeout 5秒RedisAdapter::createConnection (“复述:/ / abcdef@localhost ?timeout = 5 ');// socket "/var/run/redis. "Sock”和auth“bad-pass”RedisAdapter::createConnection (复述:/ / bad-pass@ / var /运行/ redis.sock”);//一个DSN可以使用以下语法定义多个服务器:// host[hostname-or-IP:port](其中port是可选的)。套接字必须包含尾随的':'RedisAdapter::createConnection (复述:?主机(localhost)主机(localhost: 6379)主机(/ var /运行/ redis.sock:) auth = my-password&redis_cluster = 1”);
复述,哨兵,它为Redis提供了高可用性,在使用Predis库时也被支持。使用redis_sentinel
参数设置服务组的名称:
1 2 3
RedisAdapter::createConnection (复述:?主机(redis1:26379)主机(redis2:26379)主机(redis3:26379) &redis_sentinel = mymaster ');
请注意
看到RedisTrait更多的选项,你可以通过DSN参数。
配置选项
的createConnection ()Helper方法也接受一个选项数组作为它的第二个参数。的关联数组Key =>值
表示选项名称及其各自值的对:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
使用ob娱乐下载\组件\缓存\适配器\RedisAdapter;$客户端= RedisAdapter::createConnection (//提供一个字符串DSN“复述:/ / localhost: 6379”,//配置选项的关联数组[“懒”= >假,“持续的”= >0,“persistent_id”= >零,“tcp_keepalive”= >0,“超时”= >30.,“read_timeout”= >0,“retry_interval”= >0,]);
可用选项
-
类
(类型:字符串
) -
指定要返回的连接库
\复述,
或\ Predis \客户
.如果未指定,则返回\复述,
如果复述,
分机是可用的,和\ Predis \客户
否则。 -
懒惰的
(类型:保龄球
违约:假
) -
启用或禁用到后端的延迟连接。这是
假
默认情况下,当将此作为独立组件使用时真正的
在Symfony应用程序中使用它时默认为。ob娱乐下载 -
持续的
(类型:int
违约:0
) -
启用或禁用持久连接的使用。值为
0
禁用持久连接,值为1
使他们。 -
persistent_id
(类型:字符串|零
违约:零
) - 指定用于持久连接的持久id字符串。
-
read_timeout
(类型:int
违约:0
) - 指定在底层网络资源上执行读操作时,在操作超时之前所使用的时间(以秒为单位)。
-
retry_interval
(类型:int
违约:0
) - 指定在客户端失去与服务器连接的情况下重新连接尝试之间的延迟(以毫秒为单位)。
-
tcp_keepalive
(类型:int
违约:0
) - 指定了TCP-keepalive连接超时时间(以秒为单位)。这需要phpredis v4或更高版本和启用tcp keepalive的服务器。
-
超时
(类型:int
违约:30.
) - 指定在连接尝试超时之前连接到Redis服务器的时间(秒)。
请注意
当使用Predis库中有一些额外的predis特定选项可用。引用Predis连接参数欧宝官网下载app文档获取更多信息。
使用标签
为了使用基于标记的失效,可以将适配器打包TagAwareAdapter,但当Redis被用作后端时,通常更有趣的是使用专用RedisTagAwareAdapter.由于标签失效逻辑是在Redis中实现的,所以当使用基于标签的失效时,这个适配器提供了更好的性能:
1 2 3 4 5
使用ob娱乐下载\组件\缓存\适配器\RedisAdapter;使用ob娱乐下载\组件\缓存\适配器\RedisTagAwareAdapter;$客户端= RedisAdapter::createConnection (复述:/ / localhost的);$缓存=新RedisTagAwareAdapter ($客户端);
配置复述,
当使用Redis作为缓存时,您应该配置maxmemory
而且maxmemory-policy
设置。通过设置maxmemory
,你限制了Redis允许消耗多少内存。如果数量过低,Redis会删除仍然有用的条目,你从缓存中获得的好处就会减少。设置maxmemory-policy
来allkeys-lru
告诉Redis当内存不足时可以删除数据,并且首先删除最老的条目(最近使用的最少)。如果你不允许Redis删除条目,当你试图在没有可用内存的情况下添加数据时,它会返回一个错误。示例设置如下所示:
1 2
Maxmemory -policy allkeys-lru
阅读更多关于这个主题的官方文章Redis LRU缓存文档欧宝官网下载app.