Ⅰ thinkphp5模型如何使用redis操作資料庫CURD操作
模型中添加如下代碼,可實現更新或插入前刪除緩存:
protected static function init()
{
TurnGiftSetting::beforeInsert(function ($model) {
$redis = new Redis(config('redis'));
$redis->rm(self::$redisKey);
});
TurnGiftSetting::beforeUpdate(function ($model) {
$redis = new Redis(config('redis'));
$redis->rm(self::$redisKey);
});
TurnGiftSetting::beforeDelete(function ($model) {
$redis = new Redis(config('redis'));
$redis->rm(self::$redisKey);
});
TurnGiftSetting::beforeWrite(function ($model) {
$redis = new Redis(config('redis'));
$redis->rm(self::$redisKey);
});
}
Ⅱ php redis 需要使用單例嗎
<?php
/**
* Class RedisConnManager
*
* 單例模式對redis實例的操作的進一步封裝
* 主要目的:防止過多的連接,一個頁面只能存在一個聲明連接
*
* @author :cuihuan
*/
class RedisManager
{
private static $redisInstance;
/**
* 私有化構造函數
* 原因:防止外界調用構造新的對象
*/
private function __construct(){}
/**
* 獲取redis連接的唯一出口
*/
static public function getRedisConn(){
if(!self::$redisInstance instanceof self){
self::$redisInstance = new self;
}
// 獲取當前單例
$temp = self::$redisInstance;
// 調用私有化方法
return $temp->connRedis();
}
/**
* 連接ocean 上的redis的私有化方法
* @return Redis
*/
static private function connRedis()
{
try {
$redis_ocean = new Redis();
$redis_ocean->connect(G::$conf['redis-host'], G::$conf['redis-port']);
$redis_ocean->auth(G::$conf['redis-pass']);
}catch (Exception $e){
echo $e->getMessage().'<br/>';
}
return $redis_ocean;
}
}
Ⅲ windows 7 php怎麼通過redis擴展使用redis
PHP 7安裝Redis擴展
1、php操作第一步就是要安裝對應的擴展。在Windows環境下則是對應的.dll文件。Windows環境下由於編譯環境不同,對應擴展在選擇的時候需要注意當前php的先關信息。可以通過phpinfo()查看。如果可以看到對應的環境,這在選擇擴展的時候有用
2、選擇對應PHP環境擴展
通過以上圖我們可以看到「VC14」和「ts」這樣的字樣,如果不明白的同學在找對應擴展的時候也一樣要找到這樣的字樣。
3、安裝PHP 7擴展
下載php_redis-20160319-ts-vc14-x64.zip之後解壓,將解壓後的php_redis.dll文件放到php\ext目錄下。然後在php.ini末尾添加extension=php_redis.dll。重啟Apache服務。再次通過phpinfo()查看,如圖表示安裝成功
測試例子
1、擴展安裝成功之後需要驗證下是否可以用。web伺服器目錄下創建文件輸入下面內容:
<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->set('test','hello redis');
echo $redis->get('test');
?>
2、然後在網頁上訪問,如果有hello redis輸入則表示擴展安裝成功。
Ⅳ PHP Redis是使用connect還是pconnect
首先先介紹下connect和pconnect的區別。
connect:腳本結束之後連接就釋放了。
pconnect:腳本結束之後連接不釋放,連接保持在php-fpm進程中。
所以使用pconnect代替connect,可以減少頻繁建立redis連接的消耗。
Ⅳ php redis 可以使用yeild嗎
PHP中redis的使用
redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字元串)、list(鏈表)、set(集合)和zset(有序集合)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁碟或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
Redis 是一個高性能的key-value資料庫。redis的出現,很大程度補償了memcached這類keyvalue存儲的不足,在部 分場合可以對關系資料庫起到很好的補充作用。它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便。
若想在PHP中使用redis,首先要先安裝redis。然後在PHP中配置擴展。
1.安裝redis。
首先下載好redis安裝文件,解壓到D盤或其他盤。
然後通過Dos命令行進行安裝。
把這個文件夾復制到其它地方,比如D:\redis 目錄下。
打開一個cmd窗口 使用cd命令切換目錄到D:\redis 運行 redis-server.exe redis.conf如果想方便的話,可以把redis的路徑加到系統的環境變數里,這樣就省得再輸路徑了,後面的那個redis.conf可以省略,如果省略,會啟用默認的。輸入之後,會顯示如下界面:
這時候另啟一個cmd窗口,原來的不要關閉,不然就無法訪問服務端了切換到redis目錄下運行 redis-cli.exe -h 127.0.0.1 -p 6379 出現下圖:
這時候,就已經完成配置了。
完成了配置之後,要在PHP中添加redis的擴展,之後才可以用PHP靈活的使用它。
在windows下安裝php的redis擴展非常簡單,下載一個.dll擴展包放到php的ext目錄下,在php.ini里邊添加一行配置就可以了。