動態

詳情 返回 返回

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/datan...

我們選擇的是: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\redis\Connection',
           '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的內容了

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

    <?php
    return [
    'components' => [
       
    'session' => [
      //'class' => 'yii\mongodb\Session',
      'class' => 'yii\redis\Session',
      //'db' => 'mongodb',
      //'sessionCollection' => 'session',
      'timeout' => 6000,
    ],
    
    'cache' => [
            'class' => 'yii\redis\Cache',
      //'class' => 'yii\caching\FileCache',  
      'keyPrefix' => 'rediscache-##$fdas5ygjD',
        ],

這樣cache 就可以使用redis 了。

user avatar l7luo 頭像 bugkaifa 頭像
點贊 2 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.