国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

報(bào)表的緩存基本存儲(chǔ)和讀寫(xiě)

2019-11-15 02:13:19
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
報(bào)表的緩存基本存儲(chǔ)和讀寫(xiě)
<?php/** * Class Rpt redis 用于報(bào)表的緩存基本存儲(chǔ)和讀寫(xiě) 2.0 * @simple * Rpt::read("diamond.account",$nick); * Rpt::readSync("diamond.account",$nick); * $finder = Rpt::createFinder("diamond.account",$nick); * $finder->read(); * $finder->readSync(); * * Rpt::save("diamond.account",$nick,$data); * $storage = Rpt::createStorage("diamond.account",$nick); * $storage->save($data); * $storage->save($data,7200); */class Rpt {    public static function read($key,$nick){        $finder = self::createFinder($key,$nick);        return $finder->read();    }    public static function readSync($key,$nick){        $finder = self::createFinder($key,$nick);        return $finder->readSync();    }    public static function createFinder($key,$nick){        $key = RptGenerate::key($key,$nick);        return new RptFinder($key);    }    public static function createStorage($key,$nick){        $key = RptGenerate::key($key,$nick);        return new RptStorage($key);    }    public static function save($key,$nick,$data,$expired=7200){        $storage = self::createStorage($key,$nick);        return $storage->save($data,$expired);    }    public static function createRedis(){        $redis = new Redis();        $redis->connect(Yii::app()->params["RedisServerPRotected function readData(){        $redis = Rpt::createRedis();        $rptData = new RptData();        $data = json_decode($redis->get($this->key));        if(false == $data){            $rptData->isRead = false;            $rptData->expiredTime = time();            $rptData->expired = 24*3600;        }else{            $rptData->expired = $data->expired;            $rptData->isRead =  $data->isRead;            $rptData->expiredTime = $data->expiredTime;            $rptData->data = $data->data;        }        return $rptData;    }    /**     * 同步讀取數(shù)據(jù)     * @return mixed     */    public function readSync(){        while(true){            $rptData = $this->readData();            if($rptData->isRead && !$rptData->isExpired())                return $this->read();            sleep(1);        }    }}/** * Class RptStorage  數(shù)據(jù)存儲(chǔ) */class RptStorage {    /**     * @var string key     */    public $key;    /**     * @param string $key     */    public function __construct($key){      $this->key = $key;    }    /**     * 寫(xiě)入數(shù)據(jù)     * @param $data     * @param int $expired     * @return bool     */    public function save($data,$expired=7200){        $rptData = new RptData();        $rptData->data = $data;        $rptData->expiredTime = time();        $rptData->isRead = true;        $rptData->expired = $expired;        $redis = Rpt::createRedis();        return $redis->setex($this->key, $rptData->expired,json_encode($rptData));    }}/** * Class RptData redis存儲(chǔ)數(shù)據(jù)實(shí)體 */class RptData {    public $expired;    public $expiredTime;    public $data;    public $isRead;    public function isExpired(){        if(time()-$this->expiredTime > $this->expired)            return true;        return false;    }}/** * Class RptGenerate key生成 */class RptGenerate {    public static function key($key,$nick){        return $key.".".md5($nick);    }}


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 雅江县| 呼和浩特市| 喜德县| 渭源县| 邵阳县| 区。| 京山县| 临邑县| 龙井市| 惠安县| 富宁县| 河东区| 苗栗市| 黎城县| 冀州市| 综艺| 天峻县| 宁明县| 青州市| 乌拉特中旗| 乌鲁木齐县| 文安县| 万源市| 集贤县| 广安市| 霍州市| 普兰店市| 阳春市| 定西市| 叙永县| 蒲城县| 东阿县| 彩票| 体育| 治县。| 高雄县| 阜宁县| 巴东县| 盐源县| 惠东县| 德化县|