栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

PHP memcache 内存缓存 数据库查询应用

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP memcache 内存缓存 数据库查询应用

PHP memcache在数据库查询中应用,减少连接数据库的次数,降低服务器的压力!

  

        //创建memcache对象

        $mem  =  new  Memcache();

         

        //连接memcache服务器

        $host = 'localhost';

        $port = '11211';

        $mem->connect($host,$port);

        //$mem->addserver($host,$port);

        //$mem->addserver('192.168.10.254', 11211); //新增一台服务器的内存

         

        $dsn           =     'mysql:dbname=test;host=localhost';

        $username =    'root';

        $passwd     =    'root';

        $options     =    array(

                                            PDO::ATTR_AUTOCOMMIT=>true,

                                            PDO::ATTR_PERSISTENT=>true

                                           );

        //连接数据库

        try{

            //创建对象

            $pdo =  new PDO($dsn, $username, $passwd, $options);

            //设置错误使用异常模式

            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        }catch(PDOException $e){

            echo "数据库连接失败:".$e->getMessage();

            exit;

        }

         

        $statement = "select * from users where id > ? and id < ?";

        //键名用md5()加密后 名字更规范 防止查询语句信息泄漏

        $key = md5($statement);

         

        //直接从内存要数据

        $data = $mem->get($key);

         

        //判断是否存在$data,如果没有才需要连接数据库获取数据!数据直接从内存获取,实现缓存。

        if(empty($data)){

        try{               

                //给数据库管理系统,编译后等待 没有执行

                $pdostatement=$pdo->prepare($statement);

                $pdostatement->execute(array(3,6));

                //设置结果的模式

                $pdostatement->setFetchMode(PDO::FETCH_NUM);  

                $data = $pdostatement->fetchAll(PDO::FETCH_ASSOC);

                //保存在缓存中

                $mem->set($key, $data,MEMCACHE_COMPRESSED,10);

                echo '第一次数据库查询!
';

        }catch (PDOException $e){

            echo '错误的原因:'.$e->getMessage();

        }

        }

         

        //按表格形式输出

        echo '

';

        foreach ($data as $value){

            echo '

';

            echo '

';

            echo '

';

            echo '

';

            echo '

';

            echo '

';

        }

        echo '

'.$value['id'].''.$value['username'].''.$value['password'].''.$value['email'].'
';

        //关闭连接

        $mem->close();

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/228759.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号