美文网首页
Laravel结合Redis

Laravel结合Redis

作者: 啃先生 | 来源:发表于2015-05-15 11:00 被阅读10794次

    直连DB是不够的,很快数据库访问就会成为系统的瓶颈。我们引入缓存Redis。还是一样的思路,先让系统跑起来。

    一、安装启动Redis##

    1. 安装
    $ wget http://download.redis.io/releases/redis-3.0.1.tar.gz
    $ tar xzf redis-3.0.1.tar.gz
    $ cd redis-3.0.1
    $ make
    
    1. 启动
    $ src/redis-server
    

    查看官方下载和安装文档,只需要几个命令即可

    二、安装PHP PRedis##

    PRedis是PHP访问redis的扩展包,只需要下载原码即可,不需要安装PHP扩展(如php-redis.so)。但在这之前要介绍一个composer,因为laravel通过它来安装第三方程序包(管理依赖关系)。

    1. cd 到你的App所在路径,修改composer.json,在require字段里,添加"predis/predis":"~1.0.1",然后当前目录下 sudo composer update,此时就会自动下载包需要的扩展包,这些扩展包将会被放在vendor目录下。

    如果出现内存不够这些报错,现在看来是内存分配不够的原因,重启一下服务器即可,彻底解决的办法要修改服务器配置,但我不清楚改哪里,后续再补

    1. 配置相关配置,查看官方文档即可。主要是配置config/database.php
    'redis' => array(
        'cluster' => false,
        'default' => array('host' => '127.0.0.1', 'port' => 6379)
    )
    

    三、coding##

    <?php namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    use App\User as User;
    use Illuminate\Support\Facades\Redis as Redis;
    
    class UserController extends Controller {
    
        // use User;
    
        private $model;
        /**
         * Create a new controller instance.
         *
         * @return void
         */
        public function __construct()
        {
            $this->model = new User();
        }
        
        /**
         * Show 
         *
         * @return Response
         */
        public function showUser($id)
        {
            $redis = Redis::connection('default');
            $cacheUsers = $redis->get('userList');
    
            if( $cacheUsers ){
                $users = $cacheUsers;
                print_r($users);
                Log::info('获取用户列表,通过redis');
            }else{
                $users = $this->model->fetchAll();
                $redis->set('userList', $users);
                print_r($users);
                Log::info('获取用户列表,通过msyql');
            }
        }
    }
        
    

    相关文章

      网友评论

          本文标题:Laravel结合Redis

          本文链接:https://www.haomeiwen.com/subject/bfzhqttx.html