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();
}
}