yii2redis安装

时间:2022-07-15 22:19:47

yii2 – redis 配置

转自:http://www.fancyecommerce.com/2016/05/03/yii2-redis-%E9%85%8D%E7%BD%AE/

  1. 安装redis
  1. wget http://download.redis.io/releases/redis-3.2.8.tar.gz
  2. tar xzf redis-3.2.8.tar.gz
  3. cd redis-3.2.8
  4. make
  1. cd src
  2. cp redis-server /usr/local/bin/
  3. cp redis-cli /usr/local/bin/
  1. mkdir /etc/redis
  2. mkdir /var/redis
  3. mkdir /var/redis/6379
  1. cd ..
  2. cp utils/redis_init_script /etc/init.d/redis_6379
  3. cp redis.conf /etc/redis/6379.conf
  1. /etc/init.d/redis_6379 start

vim /etc/redis/6379.conf ,找到如下的代码部分,修改

  1. daemonize to yes
  2. pidfile to /var/run/redis_6379.pid
  3. logfile to /var/log/redis_6379.log
  4. dir to /var/redis/6379
  5. maxmemory 268435456

maxmemory 这里设置的是256mb,您可以按照您的配置自己设置。

设置开机启动:vim /etc/rc.d/rc.local,添加下面的代码

  1. /etc/init.d/redis_6379 start

2.安装redis的扩展。

  1. yum install git
  1. git clone git://github.com/owlient/phpredis
  2. cd phpredis
  3. /usr/local/php/bin/phpize
  4. ./configure --with-php-config=/usr/local/php/bin/php-config
  5. make && make install

如果上述出现报错,可以尝试用另外一个源:

  1. git clone git://github.com/nicolasff/phpredis

php.ini中添加:

  1. extension=redis.so

3.yii2 redis扩展的安装,以及配置:

在配置好的yii2根目录下面执行(您已经安装了composer)

  1. composer require --prefer-dist yiisoft/yii2-redis

等待片刻就可以安装好yii2 的 redis 扩展

4.yii2中redis的配置

首先基于安全考虑,我们需要给redis设置密码,除非,您的redis端口关闭。

vim /etc/redis/6379.conf

找到行,把前面#去掉,后面加redis的密码

  1. requirepass rds423fsadD

重启redis就可以了。

  1. /etc/init.d/redis_6379 stop
  2. /etc/init.d/redis_6379 start

这样redis密码验证就有了。

yii2的配置如下:

  1. 'redis' => [
  2. 'class' => 'yii\redis\Connection',
  3. 'hostname' => 'localhost',
  4. 'port' => 6379,
  5. 'database' => 1,
  6. //'unixSocket' => '/var/run/redis/redis.sock',
  7. 'password' => 'rds423fsadD',
  8. // 'unixsocket' => '/var/run/redis/redis.sock',
  9. // 'unixSocket' => '/tmp/redis.sock',
  10. ],

重启redis , 这里  yii2就配置好redis了

5.redis的使用:刷新缓存:

  1. [root@E3-1230v2-829 catalog]# redis-cli
  2. 127.0.0.1:6379> auth rds!23v3cv3#ds
  3. OK
  4. 127.0.0.1:6379> flushall
  5. OK
  6. 127.0.0.1:6379>

redis-cli flushall  会报错(需要按照上面的步骤登录)

6.带有密码的redis,定时脚本清空缓存:

新建/www/script/redis_reflush_all.sh,添加如下内容

  1. /usr/local/bin/redis-cli -a 'rds!2016!FDR' flushall

添加到cron中,   crontab -e,添加如下内容,保存

  1. 30 18 * * * /bin/bash /www/web/intosmile.com/shell/flushall.sh

就会定时清空redis的内容了

7. yii2中配置session 和 cache 使用redis

  1. <?php
  2. return [
  3. 'components' => [
  4. 'session' => [
  5. //'class' => 'yii\mongodb\Session',
  6. 'class' => 'yii\redis\Session',
  7. //'db' => 'mongodb',
  8. //'sessionCollection' => 'session',
  9. 'timeout' => 6000,
  10. ],
  11. 'cache' => [
  12. 'class' => 'yii\redis\Cache',
  13. //'class' => 'yii\caching\FileCache',
  14. 'keyPrefix' => 'rediscache-##$fdas5ygjD',
  15. ],

这样cache 就可以使用redis 了。

php中使用redis

1. 设置Redis密码,以提供远程登陆
打开redis.conf配置文件,找到requirepass,然后修改如下:

requirepass yourpassword

yourpassword就是redis验证密码,设置密码以后发现可以登陆,但是无法执行命令了。
命令如下:

redis-cli -h 127.0.0.1 -p 6379//启动redis客户端,并连接服务器
keys * //输出服务器中的所有key

报错如下

(error) ERR operation not permitted

这时候你可以用授权命令进行授权,就不报错了
命令如下:

auth youpassword

2. PHP访问Redis

yii2redis安装
$redis = new Redis();
$conn = $redis->connect('localhost', 6379);
$auth = $redis->auth('20160601'); //设置密码
var_dump($auth);
$redis->set('access_token', "123213213213213213");
$redis->set('expired_time', 1464344863); var_dump($redis->get("access_token"));
var_dump($redis->get("expired_time"));