研究redis的单例模式和对象映射模式的速度

这一次研究和学习,仅仅是自我研究,若有问题,请在评论指出,毕竟我也是刚学redis和研究redis的性能。

 

模拟环境:window

开发语言:php5.6(tp5)

内存数据库:redis

数据库:mysql

 

场景模拟,模拟1000人同时访问同一个页面

  //访问同一个数据1000次的时间 平均时间为2.1S
     /*   for($i=0;$i<1000;$i++)
        {
            Users::find(['user_id'=>1]);
        }*/


        //该处是单例模式   平均时间为0.3S
       /* for($i=0;$i<1000;$i++)
        {
            if(!Redis::getInstance()->get('user_1'))
            {
                Users::find(['user_id'=>1]);
                Redis::getInstance()->set('user_1',1);
            }else
            {
                Redis::getInstance()->get('user_1');
            }

        }*/

        //对象模式  平均时间为6.6S
        /*for($i=0;$i<1000;$i++)
        {
            $obj = new Redis();
            if(!$obj->get('user_1'))
            {
                Users::find(['user_id'=>1]);
                $obj->set('user_1',1);
            }else
            {
                $obj->get('user_1');
            }
        }*/
        

由此得出:在普通开发的情况下,使用redis去访问数据库会比普通访问数据库会快上10倍左右,但这需要是在单例模式下进行访问。

优先级:单例模式下redis    >    普通访问    >    对象模式访问redis

因为在对象映射模式中每次实例化对象需要耗费很多内存资源,导致其访问的速度变慢。

而在单例模式下访问数据库,仅仅是实例一次即可进行操作,所以在内存资源中比较快。

值得注意的是,每一次测试不同模式访问时,记得要更换一下获取的键值哦!@。@

 

 

 

转载于:https://my.oschina.net/u/3668278/blog/1537528

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值