Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是PHP中的压缩';什么是Memcache?_Php_Compression_Memcached - Fatal编程技术网

什么是PHP中的压缩';什么是Memcache?

什么是PHP中的压缩';什么是Memcache?,php,compression,memcached,Php,Compression,Memcached,在PHP.net上,我正在查看这个函数,它有一个可选的标志来使用压缩 使用MEMCACHE_COMPRESSED存储 项目压缩(使用zlib) 我很好奇,这样做的好处是什么,只是占用更少的空间?这似乎会降低进程的速度?你说得对,这是占用更少空间或占用更多CPU周期之间的折衷 您也可以选择哪个资源对您来说更宝贵,RAM还是CPU memcached可用于在机器之间保持分布式缓存。在这种情况下,需要通过网络或机器之间的其他连接发送对缓存的更新。压缩减少了需要发送的数据量,因此减少了传输所需的时间,从

在PHP.net上,我正在查看这个函数,它有一个可选的标志来使用压缩

使用MEMCACHE_COMPRESSED存储 项目压缩(使用zlib)


我很好奇,这样做的好处是什么,只是占用更少的空间?这似乎会降低进程的速度?

你说得对,这是占用更少空间占用更多CPU周期之间的折衷

您也可以选择哪个资源对您来说更宝贵,RAM还是CPU

  • memcached可用于在机器之间保持分布式缓存。在这种情况下,需要通过网络或机器之间的其他连接发送对缓存的更新。压缩减少了需要发送的数据量,因此减少了传输所需的时间,从而可以提高系统性能
  • 即使在一台主机内,压缩速度也比从磁盘交换内存页快几个数量级,因此,如果由于内存不足而进行交换,压缩将减少需要交换的数量,从而提高性能。在正确的情况下,压缩可能会减少数据的大小,因此您根本不需要交换数据—这是性能上的一大胜利

  • 在运行PHP的服务器上进行压缩和解压缩可以很快——这取决于您的网络和服务器上的负载,比通过网络向memcached服务器传输更多(未压缩)数据要快

    压缩数据还意味着在memcached服务器上使用更少的内存

    通常,您必须在CPU、网络和RAM之间进行选择——您必须考虑您的服务器和网络、它们的负载和可用资源,才能做出决定

    在您的特定情况下,“最快”的解决方案是什么?只有你能告诉我。。。唯一知道的方法可能是在“真实条件”下测试这两种解决方案



    此外,memcached条目不能大于1MB;我想,在某些方面,这种压缩可以帮助将略大于1MB的条目(尚未压缩时)放入memcache。

    这样可以减少memcache中的空间,减少通过网络传输的时间。但会增加压缩和解压缩开销。此外,您还可能与其他memcache客户端以及memcache increment命令不兼容。提示:RAM。现代CPU可以很快地运行像zlib这样的旧算法。如果您的memcache主机(或多个主机)正在/正在交换,则说明您做了一些非常错误的事情。
    $memcache_obj->set('var_key',
                       'some really big variable',
                        MEMCACHE_COMPRESSED,
                        50);