Yii2 配置yii2-redis扩展

Yii2-redis 不用 composer 的安装
由于 composer 是国外的源,所以用下面的方式很难成功
php composer.phar require –prefer-dist yiisoft/yii2-redis

改成手动安装redis
1、下载 yii2-redis 的文件
https://github.com/yiisoft/yii2-redis/archive/master.zip
改文件夹名为 yii2-redis,放到 vendor\yiisoft 目录下

2、编辑文件vendor\yiisoft\extensions.php:
‘yiisoft/yii2-redis’ =>
  array (
    ’name’ => ‘yiisoft/yii2-redis’,
    ’version’ => ‘2.0.14.0’,
    ’alias’ =>
      array (
        ’@yii/redis’ => $vendorDir . ‘/yiisoft/yii2-redis/src’,
      ),
  ),

3、编辑文件vendor\composer\autoload_psr4.php,加入:
‘yii\\redis\\’ => array($vendorDir . ‘/yiisoft/yii2-redis/src’),

4、编辑文件 main.php
return [
  //….
  ’components’ => [
    ’redis’ => [
      ’class’ => ‘yii\redis\Connection’,
      ’hostname’ => ‘localhost’,
      ’port’ => 6379,
      ’database’ => 0,
    ],
  ]
];

PHP中利用redis实现消息队列处理高并发请求

将请求存入redis

为了模拟多个用户的请求,使用一个for循环替代

<?php<br>//redis数据入队操作
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
for($i=0;$i<50;$i++){
try{
$redis->LPUSH('click',rand(1000,5000));
}catch(Exception $e){
echo $e->getMessage();
}
}


在后台进行数据处理

守护进程

<?php
//redis数据出队操作,从redis中将请求取出
$redis = new Redis();
$redis->pconnect('127.0.0.1',6379);
while(true){
try{
$value = $redis->LPOP('click');
if(!$value){
break;
}
var_dump($value)."\n";
/*
* 利用$value进行逻辑和数据处理
*/
}catch(Exception $e){
echo $e->getMessage();
}
}

用 chown 和 chmod 修改目录所属用户及权限

1、修改 tmp 目录所属用户为 root,用户组为 root

chown -R root:root /tmp
2、修改 tmp 目录为可写权限

chmod -R 777 /tmp

解决Tensorflow 使用时cpu编译不支持警告

使用TensorFlow模块时,弹出错误Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2

原因是下载TensorFlow的版本不支持cpu的AVX2编译。

可能是因为安装时使用的pip install tensorflow ,这样默认会下载X86_64的SIMD版本。

2.彻底解决,换成支持cpu用AVX2编译的TensorFlow版本。

首先,卸载原来版本的TensorFlow

pip uninstall tensorflow

完成后可以用pip list查看一下所有库,检查是否成功卸载。

然后去github下载正确的tf版本,Windows点这里下载。其他操作系统可以点这里找到对应的版本。

博主用的win10,python3.6,所以选择如下图:

对应的path在上边的找到对应的.whl下载即可。

然后安装:

然后安装:

pip install tensorflow-1.6.0-cp36-cp36m-win_amd64.whl

成功安装后,再次运行TensorFlow就不会报错啦~