首页 > PHP,mysql,redis > nomagic的原理以及受其启发对公司系统的创新改良二
2014
11-19

nomagic的原理以及受其启发对公司系统的创新改良二

上次说到对redis的更新比较困难,我在pyconchina2014与老平等人交谈时他们提出了重构,可是对企业来说时间是一个很大的成本,能够在打补丁的方式运行,我想任何人都不愿意使用rework的方式来工作

当前的redis工作比较尴尬,因为在之前的系统设计中没有缓存这一说,所以造成redis的更新太慢,排错不好排


redis的尴尬.png

而且代码中多是类似这样的代码

$list1=$Cache->sMembers('main_cztd_nsrsbh_'.$year);
$company=$Cache->hGetAll('company_'.$v);

等之类的,导致程序的使用必须建立的redis缓存存在基础上

怎么样才能够及时更新呢?

更新方法比较简单

就是新建一个redis的操作类 方法名使用相关关键词

比如:要获取企业信息

$company=$Cache->hGetAll('company_'.$v);

我们要简历这样的方法

class RedisCache{
    protected $cache;
    protected function _initialize(){
        $this->cache = Cache::getInstance('Redis');
    }
    public function getCompanyInfo($id){//根据企业id得到企业信息
        $comInfo=$this->cache->hGetAll('company_'.$id);
        if($comInfo['create_time']-time()>0)
            $comInfo=getClass::getComInfoFunction('$id');
            //在创建类
        return $comInfo;
    }
    public function getNsrsbhOfCztdTax($id){
        ......
    }
}

从理论上讲这样子就可以了,但是他会不会仍然出现问题

猜想1.时间问题打开一次需要花费很长时间。

猜想2.直接卡死服务器,如果多个人打开同时生成redis缓存就会导致服务器很卡很慢


关于以上两个问题,我下次的时候继续探讨

最后编辑日期:
作者:hainuo
hainuo
这个作者貌似有点懒,什么都没有留下。
https://shenghuo.alipay.com/transfer/aaCollect/pay.htm?id=18656668&sign=1e0c1245ffd24ee46f648ea278825f49
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!