复述,缓存适配器
编辑该页面复述,缓存适配器
另请参阅
这篇文章解释了如何使用缓存时复述,适配器配置为一个独立的组件在任何PHP应用程序。读了ob娱乐下载Symfony缓存配置如果你是条在Symfony应用程序中使用它。ob娱乐下载
这个适配器存储内存中使用一个(或更多)的值复述,服务器实例。
不像APCu适配器,类似于Memcached适配器,它不仅限于当前服务器的共享内存;你可以存储内容独立于PHP环境。利用一个服务器集群的能力也可以提供冗余和/或故障转移。
谨慎
要求:至少有一个复述,服务器必须安装和运行使用这个适配器。此外,这个适配器需要扩展或图书馆,实现兼容\复述,
,\ RedisArray
,RedisCluster
,\ \继电器
或\ Predis
。
这个适配器预计复述,,RedisArray,RedisCluster,继电器或Predis实例作为第一个参数传递。一个名称空间和默认缓存生命周期可以被作为第二个和第三个参数传递:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
使用ob娱乐下载\组件\缓存\适配器\RedisAdapter;美元缓存=新RedisAdapter (/ /对象存储一个有效的连接到您的复述,系统\复述,美元redisConnection,/ /字符串前缀的键项存储在这个缓存美元名称空间=”,/ /缺省生命周期(秒)不定义的缓存项/ /自己的一生,值0导致项目被无限期存储(即。/ /直到RedisAdapter: clear()调用或服务器(s)将被清除)美元defaultLifetime=0);
6.3
支持继电器是在Symfony 6.3中引入的。ob娱乐下载
配置连接
的createConnection ()助手方法允许创建和配置复述,客户机使用一个类实例数据源名称(DSN):
1 2 3 4 5 6
使用ob娱乐下载\组件\缓存\适配器\RedisAdapter;/ /一个DSN字符串传递给注册一个服务器和客户端美元客户端= RedisAdapter::createConnection (复述:/ / localhost的);
DSN可以指定一个IP /主机(和一个可选端口)或套接字路径,以及一个密码和一个数据库索引。支持TLS连接,计划复述,
必须更换,复述,
(第二个年代
意思是“安全的”)。
请注意
一个数据源名称(DSN)这个适配器必须使用以下格式之一。
1
复述,[s]: / / [pass@] [ip主机| |套接字[:端口]][/ db-index]
1
复述,[s]:[[用户]:pass@] ? [ip主机| |套接字[:端口]](params)
值占位符(用户)
,(港):
,[/ db-index]
和(参数)
是可选的。
以下是有效的dsn的常见例子显示可用的组合值:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24
使用ob娱乐下载\组件\缓存\适配器\RedisAdapter;/ /主机“my.server.com”和端口“6379”RedisAdapter::createConnection (“复述:/ / my.server.com: 6379”);/ /主机“my.server.com”和端口“6379”和数据库索引“20”RedisAdapter::createConnection (“复述:/ / my.server.com: 6379/20”);/ /主机“localhost”,身份验证“六边形abcdef”和超时5秒RedisAdapter::createConnection (“复述:/ / abcdef@localhost ?超时= 5”);/ /套接字" / var /运行/复述。袜子”和身份验证“糟糕”RedisAdapter::createConnection (复述:/ / bad-pass@ / var /运行/ redis.sock”);/ /主机“redis1”(码头工人容器)交替DSN语法并选择数据库索引“3”RedisAdapter::createConnection (复述:?主机(redis1:6379) &dbindex = 3”);/ /为凭据提供备用DSN语法RedisAdapter::createConnection (复述:默认值:verysecurepassword@ ?主机(redis1:6379) &dbindex = 3”);/ /一个DSN还可以定义多个服务器RedisAdapter::createConnection (复述:?主机(localhost)主机(localhost: 6379)主机(/ var /运行/ redis.sock:) auth = my-password&redis_cluster = 1”);
复述,哨兵为复述,提供高可用性,还支持在使用PHP v5.2 +复述,扩展或Predis图书馆。使用redis_sentinel
参数设置的名称服务集团:
1 2 3 4 5 6 7 8 9 10 11 12 13
RedisAdapter::createConnection (复述:?主机(redis1:26379)主机(redis2:26379)主机(redis3:26379) &redis_sentinel = mymaster ');/ /提供凭证RedisAdapter::createConnection (复述:默认值:verysecurepassword@ ?主机(redis1:26379)主机(redis2:26379)主机(redis3:26379) &redis_sentinel = mymaster ');/ /选择数据库索引提供凭证和“3”RedisAdapter::createConnection (复述:默认值:verysecurepassword@ ?主机(redis1:26379)主机(redis2:26379)主机(redis3:26379) &redis_sentinel = mymaster&dbindex = 3 ');
请注意
看到RedisTrait对于更多的选择可以通过DSN参数。
配置选项
的createConnection ()助手方法还接受的选项数组作为第二个参数。预期的格式是一个关联数组中键= >值
对代表选项名称和各自的价值观:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25
使用ob娱乐下载\组件\缓存\适配器\RedisAdapter;美元客户端= RedisAdapter::createConnection (/ /提供一个字符串dsn“复述:/ / localhost: 6379”,/ /关联数组的配置选项(“类”= >零,“持续的”= >0,“persistent_id”= >零,“超时”= >30.,“read_timeout”= >0,“retry_interval”= >0,“tcp_keepalive”= >0,“懒”= >零,“redis_cluster”= >假,“redis_sentinel”= >零,“dbindex”= >0,“故障”= >“没有”,“ssl”= >零]);
可用选项
6.3
\ \继电器
支持是在Symfony 6.3中引入的。ob娱乐下载
-
类
(类型:字符串
违约:零
) -
指定的连接库返回
\复述,
,\ \继电器
或\ Predis \客户
。如果没有指定,回退值是在订单后,根据哪一个是可用的:\复述,
,\ \继电器
,\ Predis \客户
。显式地设置这个\ Predis \客户
前哨如果您遇到问题时检索主信息。 -
持续的
(类型:int
违约:0
) -
启用或禁用使用持久连接。的值
0
禁用持久连接,和一个值1
使他们。 -
persistent_id
(类型:字符串|零
违约:零
) - 指定了持久id字符串使用持久连接。
-
超时
(类型:int
违约:30.
) - 指定的时间(以秒为单位)用于连接复述,服务器在连接请求超时。
-
read_timeout
(类型:int
违约:0
) - 指定的时间(以秒为单位)上执行读操作时使用的底层网络资源在操作时间。
-
retry_interval
(类型:int
违约:0
) - 指定重新连接尝试之间的延迟(毫秒)情况下,客户端与服务器失去连接。
-
tcp_keepalive
(类型:int
违约:0
) - 指定了TCP-keepalive连接的超时时间(以秒为单位)。这需要phpredis v4或更高版本和TCP-keepalive启用服务器。
-
懒惰的
(类型:bool
违约:零
) -
启用或禁用懒惰的后端连接。这是
假
默认情况下,当使用这个作为一个独立的组件真正的
默认情况下,当使用它在一个Symfony应用程序。ob娱乐下载 -
redis_cluster
(类型:bool
违约:假
) - 启用或禁用复述,集群。传递的实际价值是无关紧要的,只要通过比较宽松的检查:“redis_cluster = 1”就足够了。
-
redis_sentinel
(类型:字符串
违约:零
) - 指定主名称连接到哨兵。
-
dbindex
(类型:int
违约:0
) - 指定数据库索引选择。
-
故障转移
(类型:字符串
违约:没有一个
) -
指定故障转移集群实现。为
\ RedisCluster
有效的选项是没有一个
(默认),错误
,分发
或奴隶
。为\ Predis \ ClientInterface
有效的选项是奴隶
或分发
。 -
ssl
(类型:数组
违约:零
) - SSL上下文选项。看到php.net/context.ssl为更多的信息。
请注意
当使用Predis图书馆的一些额外Predis-specific选项可用。引用Predis连接参数欧宝官网下载app文档的更多信息。
使用标签
为了使用基于失效,你可以包装你的适配器TagAwareAdapter,但当复述,用作后端时,通常是使用专用的更有趣RedisTagAwareAdapter。由于标签失效逻辑实现在复述,这个适配器提供了更好的性能在使用基于失效:
1 2 3 4 5
使用ob娱乐下载\组件\缓存\适配器\RedisAdapter;使用ob娱乐下载\组件\缓存\适配器\RedisTagAwareAdapter;美元客户端= RedisAdapter::createConnection (复述:/ / localhost的);美元缓存=新RedisTagAwareAdapter (美元客户端);
配置复述,
当使用复述,作为缓存,你应该配置maxmemory
和maxmemory-policy
设置。通过设置maxmemory
,你限制复述,可以使用多少内存。如果太低,复述,将删除条目,仍然是有用的,你从缓存获益少。设置maxmemory-policy
来allkeys-lru
告诉复述,可以降低数据当它耗尽内存,并首次下降最古老的条目(最近最少使用)。如果你不允许复述,删除条目,它将返回一个错误当你试图添加数据时没有内存可用。设置一个例子可能看起来如下:
1 2
maxmemory 100 mb maxmemory-policy allkeys-lru
阅读更多关于这个话题的官员复述,LRU缓存文档欧宝官网下载app。