Memcached缓存适配器

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.3,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

Memcached缓存适配器

这个适配器存储内存中使用一个(或更多)的值Memcached服务器实例。不像APCu适配器,类似于复述,适配器,它不仅限于当前服务器的共享内存;你可以存储内容独立于PHP环境。利用一个服务器集群的能力也可以提供冗余和/或故障转移。

谨慎

要求:Memcached PHP扩展以及一个Memcached服务器必须安装、活跃和运行使用这个适配器。版本2.2或更高的Memcached PHP扩展这个适配器是必需的。

这个适配器预计Memcached实例作为第一个参数传递。一个名称空间和默认缓存生命周期可以被作为第二个和第三个参数传递:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
使用欧宝娱乐app下载地址\组件\缓存\适配器\MemcachedAdapter;美元缓存=MemcachedAdapter (/ /客户端对象,设置选项和添加服务器实例(s)\ Memcached美元客户端,/ /字符串前缀的键项存储在这个缓存美元名称空间=,/ /缺省生命周期(秒)不定义的缓存项/ /自己的一生,值0导致项目被无限期存储(即。/ /直到MemcachedAdapter: clear()调用或服务器重启(s))美元defaultLifetime=0);

配置连接

createConnection ()允许创建和配置一个辅助方法Memcached类实例使用一个数据源名称(DSN)或dsn数组:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日
使用欧宝娱乐app下载地址\组件\缓存\适配器\MemcachedAdapter;/ /一个DSN字符串传递给注册一个服务器和客户端美元客户端= MemcachedAdapter::createConnection (memcached: / / localhost的/ / DSN可以包含配置选项(通过它们作为查询字符串):/ /“memcached: / / localhost: 11222 ? retry_timeout = 10 '/ /“memcached: / / localhost: 11222 ? socket_recv_size = 1 &socket_send_size = 2”);/ /传递字符串数组的DSN注册多个服务器和客户端美元客户端= MemcachedAdapter::createConnection ([“memcached: / / 10.0.0.100”,“memcached: / / 10.0.0.101”,“memcached: / / 10.0.0.102”,/ /等等……]);/ /单个DSN可以定义多个服务器使用以下语法:/ /主机(主机名或ip端口):(端口是可选的)。插座必须包括一个落后于‘:’美元客户端= MemcachedAdapter::createConnection (memcached: ?主机(localhost)主机(localhost: 12345)主机[/一些/ memcached.sock:] = 3 ');

数据源名称(DSN)这个适配器必须使用以下格式:

1
memcached: / /[用户:pass@] [ip主机| |套接字[:端口]][?体重= int)

DSN必须包括一个IP /主机(和一个可选端口)或套接字路径,一个可选的用户名和密码(SASL验证;它要求memcached扩展编译了——enable-memcached-sasl)和一个可选的重量(优先级服务器集群中;它的值是一个整数0One hundred.它默认为;更高的价值意味着更多的优先级)。

以下是有效的dsn的常见例子显示可用的组合值:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
使用欧宝娱乐app下载地址\组件\缓存\适配器\MemcachedAdapter;美元客户端= MemcachedAdapter::createConnection ([/ /主机名+端口“memcached: / / my.server.com: 11211”/ /主机名没有端口+ SASL用户名和密码“memcached: / /说明:abcdef@localhost”/ / IP地址,而不是主机名+重量memcached: / / 127.0.0.1 ?体重= 50 '/ /套接字,而不是主机名/ IP + SASL用户名和密码memcached: / / janesmith: mypassword@ / var /运行/ memcached.sock”/ /套接字,而不是主机名/ IP +重量memcached: / / / var /运行/ memcached.sock ?体重= 20 ']);

配置选项

createConnection ()助手方法还接受的选项数组作为第二个参数。预期的格式是一个关联数组中键= >值对代表选项名称和各自的价值观:

1 2 3 4 5 6 7 8 9 10 11 12
使用欧宝娱乐app下载地址\组件\缓存\适配器\MemcachedAdapter;美元客户端= MemcachedAdapter::createConnection (/ / DSN字符串或字符串数组的DSN[],/ /关联数组的配置选项(“libketama_compatible”= >真正的,“序列化器”= >“igbinary”]);

可用选项

auto_eject_hosts(类型:bool违约:)
启用或禁用一个常数,自动调整的集群auto-ejecting超过配置的主机server_failure_limit
buffer_writes(类型:bool违约:)
启用或禁用缓冲输入/输出操作,导致存储命令缓冲区,而不是立即发送到远程服务器。检索数据的任何行动,退出连接,或关闭连接将导致缓冲区。
connect_timeout(类型:int违约:1000年)

指定套接字连接的超时时间(毫秒)操作时no_block选择启用。

有效的选项值包括任何正整数

分布(类型:字符串违约:一致的)

指定项目关键服务器之间的分配方法。一致性哈希提供更好的分布和允许将服务器添加到集群缓存以最小的损失。

有效的选项值包括modula,一致的,virtual_bucket

哈希(类型:字符串违约:md5)

指定项目键使用的散列算法。每个散列算法都有其优点和缺点。默认的建议与其他客户的兼容性。

有效的选项值包括默认的,md5,儿童权利公约,fnv1_64,fnv1a_64,fnv1_32,fnv1a_32,谢长廷,杂音

libketama_compatible(类型:bool违约:真正的)
启用或禁用“libketama”兼容的行为,使其他libketama-based客户可以透明地访问密钥存储在客户端实例(如Python和Ruby)。启用这个选项设置哈希选项md5分布选项一致的
no_block(类型:bool违约:真正的)
启用或禁用异步输入和输出操作。这是最快的运输选项可用于存储功能。
number_of_replicas(类型:int违约:0)

指定的副本数量应该存储为每个项目(在不同的服务器上)。这并不把某些memcached服务器存储的副本,而是存储副本连同所有其他对象(在“n”下一个服务器上注册)。

有效的选项值包括任何正整数

prefix_key(类型:字符串,默认值是一个空字符串)

指定一个“域”(或“名称空间”)返回你的钥匙。不能超过128个字符,降低最大的关键尺寸。

有效的选项值包括任何字母数字字符串

poll_timeout(类型:int违约:1000年)

指定的时间(以秒为单位)之前在一个套接字轮询操作超时。

有效的选项值包括任何正整数

randomize_replica_read(类型:bool类型:)
启用或禁用随机副本读取的起点。通常从主服务器读取完成,如果错过了阅读完成从“主+ 1”,然后“主+ 2”,一直到“n”副本。这个选项设置副本读取所有可用的服务器之间随机;它允许把读负载分发到多个服务器更写交通的费用。
recv_timeout(类型:int违约:0)

指定的时间(以微秒为单位)之前超时期间一个即将离任的套接字(读)操作。当no_block选择不启用,这将允许您仍然有超时的阅读数据。

有效的选项值包括0任何正整数

retry_timeout(类型:int违约:0)

指定的时间(以秒为单位)之前超时并重新尝试连接尝试。

有效的选项值包括任何正整数

send_timeout(类型:int违约:0)

指定的时间(以微秒为单位)之前超时期间传入的套接字(发送)操作。当no_block选择不启用,这将允许您仍然有超时在发送的数据。

有效的选项值包括0任何正整数

序列化器(类型:字符串违约:php)

指定使用的序列化器序列化非标量值。的igbinary选择需要启用igbinary PHP扩展,以及memcached扩展编译支持它。

有效的选项值包括phpigbinary

server_failure_limit(类型:int违约:0)

指定服务器连接尝试失败限制之前将服务器标记为“死”。除非服务器将保持在服务器池auto_eject_hosts启用。

有效的选项值包括任何正整数

socket_recv_size(类型:int)

指定的最大缓冲区大小(以字节为单位)的上下文中输入(接收)套接字连接数据。

有效的选项值包括任何正整数,一个默认值不同的平台和内核配置

socket_send_size(类型:int)

指定的最大缓冲区大小(以字节为单位)的上下文中外向(发送)套接字连接数据。

有效的选项值包括任何正整数,一个默认值不同的平台和内核配置

tcp_keepalive(类型:bool违约:)
启用或禁用“维生_”传输控制协议(TCP)功能,这个功能可以帮助确定是否另一端已停止响应发送探测网络对等在空闲时间和关闭或坚持基于响应的套接字(或缺乏)。
tcp_nodelay(类型:bool违约:)
启用或禁用“没有延迟_”纳格尔(算法)传输控制协议(TCP)算法,它是一种机制旨在提高网络的效率,减少TCP报头的开销通过结合一些小传出消息和发送他们。
use_udp(类型:bool违约:)

启用或禁用的使用用户数据报协议(UDP)模式(而不是传输控制协议(TCP)模式),以“自动跟踪”的方式执行所有操作;没有试图确保操作已经收到或行动将一旦客户端执行。

谨慎

并不是所有的库操作是在这种模式下进行测试。混合TCP和UDP服务器是不允许的。

verify_key(类型:bool违约:)
启用或禁用所有钥匙使用的测试和验证,以确保它们是有效的和适合使用协议的设计。

提示

引用Memcached扩展的预定义常量欧宝体育电话文档的附加信息可用的选项。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。
欧宝娱乐app下载地址Symfony 5.3支持通过JoliCode