摘要:原文發表在我的個人網站利用完善自己的框架三緩存本教程示例代碼見回顧上兩篇文章中我們完成了視圖加載類和郵件發送類的設計,完成了兩個可插拔組件。相比使用文件作為緩存,擁有更高的性能更好地可維護性和更強大的操作。
原文發表在我的個人網站:利用 Composer 完善自己的 PHP 框架(三)——Redis 緩存
本教程示例代碼見 https://github.com/johnlui/My-First-Framework-based-on-Composer
上兩篇文章中我們完成了 View 視圖加載類和 Mail 郵件發送類的設計,完成了兩個可插拔組件。本篇文章中我們將構建另一個可插拔組件——Redis 接口,并使用它構建 MFFC 的高速緩存服務。
正文 Redis 簡介Redis 是一個高性能的 key-value 數據庫,其 value 支持 String、Map(Hash)、list、set 和 sorted sets,中文翻譯為 字符串、字典(哈希,在世界上最好的語言PHP 中屬于 數組 的一部分)、列表、集合和有序集合。
我們可以用 Redis 作為高速緩存,存放系統經常需要訪問的數據。相比使用文件作為緩存,Redis 擁有更高的性能、更好地可維護性和更強大的操作 API。
Redis 安裝Redis 官網為 http://redis.io/,可以很容易地下載安裝并在命令行直接啟動,它默認監聽 6379 端口。
Redis 服務端裝好并啟動之后,并不能寫一行代碼直接開始使用了,我們還需要安裝 客戶端。目前有兩種方式比較推薦:
安裝 PHP 的 Redis 擴展。
使用 nrk/predis 包。
Redis 使用注意:作為 PHP 擴展安裝時,請先打印出 phpinfo(),找到 Loaded Configuration File 這一項,編輯這個 php.ini 才有效。別忘了 重啟 Apache 或者 php-fpm。
我們在此選擇 nrk/predis 包作為 Redis 驅動。編輯 composer.json:
"require": { "codingbean/macaw": "dev-master", "illuminate/database": "*", "filp/whoops": "*", "nette/mail": "*", "predis/predis": "*" },
運行 composer update,等待安裝完成。
然后我們就要開始構建 Redis 類了,新建 services/Redis.php:
set($key,$value); } } public static function get($key) { self::init(); return self::$redis->get($key); } public static function delete($key) { self::init(); return self::$redis->del($key); } private static function _setex($key,$value,$time) { self::$redis->setex($key,$time,$value); } private static function _psetex($key,$value,$time) { self::$redis->psetex($key,$time,$value); } }
新建配置文件 config/redis.php:
"127.0.0.1", "port" => 6379 ];
然后我們就可以開始測試啦~ 在 HomeController 中增加:
Redis::set("key","value",5,"s"); echo Redis::get("key");
運行一次后將上面一行注釋掉,不斷刷新,看 value 是否會在設定的時間結束后從頁面上消失。
代碼分析我們創建了 Redis 類,提供了 ::set()、::get() 和 ::delete() 三個靜態方法,用于新增、獲取和刪除一對 key-value。
::set() 方法支持設定 key-value 鍵值對的生命周期,并支持 h、m、s 和 ms 四個單位,代表時、分、秒和毫秒,這樣就可以方便地用于緩存了。
嚴格意義上講,緩存類至少還需要一個 判斷 key 是否還存在 的基本操作,所以這個類還只是一個略微強大的 Redis 接口。
建造緩存接口作為練習,大家可以嘗試自己動手寫一下。選擇新建 Cache 類或者在 Redis 類中新增接口均可。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/20849.html
摘要:原文發表在我的個人網站利用完善自己的框架三緩存本教程示例代碼見回顧上兩篇文章中我們完成了視圖加載類和郵件發送類的設計,完成了兩個可插拔組件。相比使用文件作為緩存,擁有更高的性能更好地可維護性和更強大的操作。 原文發表在我的個人網站:利用 Composer 完善自己的 PHP 框架(三)——Redis 緩存 本教程示例代碼見 https://github.com/johnlui/My...
摘要:上次的訪談,介紹了下可愛的依云醬,回憶傳送門。這里簡單地介紹下龍女仆,全名小林家的龍女仆,為什么介紹這部劇呢因為設計獅顏值同學也安利了這部。劇情簡介在獨身又勞累的小林劃重點一名程序員身邊突然出現的穿著女仆服裝的美少女托爾。 showImg(https://segmentfault.com/img/bVR6p5?w=900&h=385); 上次的訪談,介紹了下可愛的依云醬,回憶傳送門。不...
摘要:上次的訪談,介紹了下可愛的依云醬,回憶傳送門。這里簡單地介紹下龍女仆,全名小林家的龍女仆,為什么介紹這部劇呢因為設計獅顏值同學也安利了這部。劇情簡介在獨身又勞累的小林劃重點一名程序員身邊突然出現的穿著女仆服裝的美少女托爾。 showImg(https://segmentfault.com/img/bVR6p5?w=900&h=385); 上次的訪談,介紹了下可愛的依云醬,回憶傳送門。不...
摘要:豐富的數據類型支持二進制案例的及數據類型操作。原子的所有操作都是原子性的,同時還支持對幾個操作全并后的原子性執行。豐富的特性還支持通知過期等等特性。完成上述配置之后我們就可以在應用代碼中使用進行數據存取了。 教科書式開頭————先看一下redis的簡介 Redis 是完全開源免費的,遵守BSD協議,是一個高性能的key-value數據庫。 Redis 與其他 key - value ...
閱讀 1754·2021-10-13 09:39
閱讀 1323·2019-08-30 13:58
閱讀 1415·2019-08-29 16:42
閱讀 3565·2019-08-29 15:41
閱讀 2997·2019-08-29 15:11
閱讀 2485·2019-08-29 14:10
閱讀 3414·2019-08-29 13:29
閱讀 2096·2019-08-26 13:27