标签:fpm 高性能 new 并且 分布式 red reload ati 地址
汕头、湖州、盐城、潍坊、保定、镇江、洛阳、泰州、乌鲁木齐、临沂、唐山、漳州、赣州、廊坊呼和浩特芜湖、桂林、银川、揭阳、三亚、遵义江门、济宁、莆田、湛江、绵阳、淮安、连云港淄博、宜昌、邯郸、上饶、柳州、舟山、咸阳九江、衡阳、威海、宁德、阜阳、株洲、丽水南阳、襄阳、大庆、沧州、信阳、岳阳、商丘肇庆、清远、滁州、龙岩、荆州、蚌埠、新乡鞍山、湘潭、马鞍山、三明、潮州、梅州、秦皇岛南平、吉林、安庆、泰安、宿迁、包头、郴州
memcache和memcached都是Memcached服务器的PHP扩展。其中memcache比memcached早出现,所以一些老的代码可能还在用memcache扩展。可以根据自己需要,安装一个即可。这里两个的安装方法都说一下。
Memcached 是高性能的分布式内存缓存服务器,而PHP memcache 和 memcached 都是 Memcached 服务器的 PHP 扩展。其中memcache 比 memcached 早出现,所以一些老的代码可能还在用 memcache 扩展。memcached 后来出现,并且大部分框架都支持 memcached,现在相对较流行。
安装依赖
首先是 memcached,这个扩展需要 libmemcached 客户端库,否则会出现如下错误
checking for libmemcached location… configure: error: memcached support requires libmemcached. Use –with-libmemcached-dir=
to specify the prefix where libmemcached headers and library are located
ERROR: `/var/tmp/memcached/configure –with-libmemcached-dir=no‘ failed
可以通过如下方法安装
[root@lnmp lnmp.cn]# yum install libmemcached libmemcached-devel
而 memcache 模块使用了函数 zlib 来支持数据压缩,因此安装此模块需要安装 Zlib 模块。否则会出现如下错误:
checking for the location of zlib… configure: error: memcache support requires ZLIB. Use –with-zlib-dir=
to specify prefix where ZLIB include and library are located
ERROR: `/var/tmp/memcache/configure –enable-memcache-session=No‘ failed
可以如下方法用 yum 来安装:
[root@lnmp lnmp.cn]# yum install zlib zlib-devel
安装 memcached 扩展
尝试用 PECL 安装,memcached 在 PECL 上的地址是:
https://pecl.php.net/package/memcached
[root@lnmp lnmp.cn]# pecl install memcached
pecl/memcached requires PHP (version >= 5.2.0, version <= 6.0.0, excluded versions: 6.0.0), installed version is 7.0.8
No valid packages found
install failed
[root@localhost vagrant]#
提示很明显,PECL 上的 memcached 扩展只支持 PHP 5.2 以上,6.00 以下的版本。还未更新到 PHP7。不过还好的是在 PECL 的 memcached 页面可以找到他们在 github 上的链接:
https://github.com/php-memcached-dev/php-memcached
这上面的代码已经有可以支持到 PHP7 的分支。这里将源码统一下载到 php 源码的 ext 目录:
[root@lnmp lnmp.cn]# cd /usr/local/src/php-7.0.8/ext/
[root@lnmp ext]# git clone https://github.com/php-memcached-dev/php-memcached memcached
[root@lnmp ext]# cd memcached/
checkout 到 php7 分支:
[root@lnmp memcached]# git checkout php7
Branch php7 set up to track remote branch php7 from origin.
Switched to a new branch ‘php7‘
[root@lnmp memcached]#
用 phpize 安装,我的 PHP 是安装在 /usr/local/php7 下
[root@lnmp memcached]# /usr/local/php7/bin/phpize
[root@lnmp memcached]# ./configure –with-php-config=/usr/local/php7/bin/php-config
接着 make 和 make install
[root@lnmp memcached]# make
[root@lnmp memcached]# make install
Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/
[root@lnmp memcached]#
可以看到 memcached 已经安装完成,并且扩展文件已经放到提示的目录:
[root@lnmp memcached]# ls /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/
memcached.so opcache.a opcache.so
[root@lnmp memcached]#
最后一步在 php.ini 中引入 memcached.so
[root@lnmp memcached]# vim /usr/local/php7/lib/php.ini
加入:
extension=memcached.so
记得 reload 一下 php-fpm 才能生效
[root@lnmp memcached]# systemctl reload php-fpm
打开 phpinfo 页面,已经已经看到 memcached 扩展成功安装了。
在php中,可以使用array_rand()函数随机从数组中取出几个值,该函数可以从数组中随机获取一个或多个元素,并返回获取的数组键值;语法格式“array_rand(array,num)”,参数num指明获取的数组元素数目。
本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑
在php中,可以使用array_rand()函数随机从数组中取出几个值。
array_rand() 函数可以从数组中随机获取一个或多个元素,并返回获取的数组键值。该函数使用了伪随机数产生算法,所以不适合密码学场景,其语法格式如下:
array_rand(array,number)
参数 描述
array 必需。规定数组。
number 可选。规定返回多少个随机的元素。
提示:如果省略 number 参数,函数默认会返回一个随机的数组键名,如果获取的数量(number)超过了 array 的长度,就会导致 E_WARNING 错误,并返回 NULL。
如果只需要获取一个元素,array_rand() 函数会返回获取到的键名,否则就返回包含随机键名的数组。函数运行成功后,就可以根据随机获取到的数组键值来获取具体的值。
示例:使用 array_rand() 函数随机获取数组元素
$array = array(
‘name‘ => ‘php中文网‘,
‘url‘ => ‘http://www.php.cn‘,
‘title‘ => ‘PHP教程‘,
‘article‘ => ‘array_rand()函数‘
);
echo ‘
‘;
var_dump(array_rand($array));
var_dump(array_rand($array, 2));
var_dump(array_rand($array, 2));
var_dump(array_rand($array, 5));
?>
标签:fpm 高性能 new 并且 分布式 red reload ati 地址
原文地址:https://www.cnblogs.com/c919dahuiji/p/14929756.html