yii2 – redis 配置
- 安装redis, 下面是2.8,注意,redis版本一定要高,2.2.7一下的版本是不行的,不支持php-redis,建议安装2.8+的版本
wget http://download.redis.io/releases/redis-3.2.9.tar.gz tar xzf redis-3.2.9.tar.gz cd redis-3.2.9 make
2.6.14 这个版本有点老,大家可去找新的redis下载
- cd src
- cp redis-server /usr/local/bin/
- cp redis-cli /usr/local/bin/
- mkdir /etc/redis
- mkdir /var/redis
- mkdir /var/redis/6379
- cd ..
- cp utils/redis_init_script /etc/init.d/redis_6379
- cp redis.conf /etc/redis/6379.conf
- /etc/init.d/redis_6379 start
vim /etc/redis/6379.conf ,找到如下的代码部分,修改
- daemonize to yes
- pidfile to /var/run/redis_6379.pid
- logfile to /var/log/redis_6379.log
- dir to /var/redis/6379
- maxmemory 268435456
maxmemory 这里设置的是256mb,您可以按照您的配置自己设置。
设置开机启动:vim /etc/rc.d/rc.local,添加下面的代码
- /etc/init.d/redis_6379 start
1.2 (可选操作)对于redis的磁盘存储
redis有几种内存的数据同步到磁盘的操作,详细可以参看文章:https://www.cnblogs.com/datang6777/p/7056272.html
我们选择的是:Append-only file, vim /etc/redis/6379.conf
- appendonly yes #启用aof持久化方式
- appendfsync everysec #每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐
- auto-aof-rewrite-percentage 200 #自动的bgrewriteaof,aof文件的大小超过基准百分之多少后触发bgrewriteaof。默认这个值设置为100,意味着当前aof是基准大小的两倍的时候触发bgrewriteaof。把它设置为0可以禁用自动触发的功能。
- auto-aof-rewrite-min-size 128mb #当前aof文件大于多少字节后才触发。避免在aof较小的时候无谓行为。默认大小为64mb。
- # 然后就是触发检查的主逻辑,serverCron时间事件中每次都会检查现有状态和参数来判断是否需要启动bgrewriteaof。
- # 如果aof文件增长百分率growth大于auto_aofrewrite_perc,则自动的触发后一个bgrewriteaof。
保存,重启redis
- /etc/init.d/redis_6379 stop
- /etc/init.d/redis_6379 start
2.安装redis的扩展。
- yum install git
- git clone git://github.com/owlient/phpredis
- cd phpredis
- /usr/local/php/bin/phpize
- ./configure --with-php-config=/usr/local/php/bin/php-config
- make && make install
如果上述出现报错,可以尝试用另外一个源:
- git clone git://github.com/nicolasff/phpredis
php.ini中添加:
- extension=redis.so
3.yii2 redis扩展的安装,以及配置:
在配置好的yii2根目录下面执行(您已经安装了composer)
- composer require --prefer-dist yiisoft/yii2-redis
等待片刻就可以安装好yii2 的 redis 扩展
4.yii2中redis的配置
首先基于安全考虑,我们需要给redis设置密码,除非,您的redis端口关闭。
vim /etc/redis/6379.conf
找到行,把前面#去掉,后面加redis的密码
- requirepass rds423fsadD
重启redis就可以了。
- /etc/init.d/redis_6379 stop
- /etc/init.d/redis_6379 start
这样redis密码验证就有了。
yii2的配置如下:
- 'redis' => [
- 'class' => 'yii edisConnection',
- 'hostname' => '127.0.0.1',
- 'port' => 6379,
- 'database' => 1,
- //'unixSocket' => '/var/run/redis/redis.sock',
- 'password' => 'rds423fsadD',
- // 'unixsocket' => '/var/run/redis/redis.sock',
- // 'unixSocket' => '/tmp/redis.sock',
- ],
重启redis , 这里 yii2就配置好redis了
5.redis的使用:刷新缓存:
- [root@E3-1230v2-829 catalog]# redis-cli
- 127.0.0.1:6379> auth rds!23v3cv3#ds
- OK
- 127.0.0.1:6379> flushall
- OK
- 127.0.0.1:6379>
redis-cli flushall 会报错(需要按照上面的步骤登录)
6.带有密码的redis,定时脚本清空缓存:
新建/www/script/redis_reflush_all.sh,添加如下内容
- /usr/local/bin/redis-cli -a 'rds!2016!FDR' flushall
添加到cron中, crontab -e,添加如下内容,保存
- 30 18 * * * /bin/bash /www/web/intosmile.com/shell/flushall.sh
就会定时清空redis的内容了
7. yii2中配置session 和 cache 使用redis
- <?php
- return [
- 'components' => [
- 'session' => [
- //'class' => 'yiimongodbSession',
- 'class' => 'yii edisSession',
- //'db' => 'mongodb',
- //'sessionCollection' => 'session',
- 'timeout' => 6000,
- ],
- 'cache' => [
- 'class' => 'yii edisCache',
- //'class' => 'yiicachingFileCache',
- 'keyPrefix' => 'rediscache-##$fdas5ygjD',
- ],
这样cache 就可以使用redis 了。