#基於PhalApi的Redis拓展php
##前言## 先在這裏感謝phalapi框架創始人@dogstar,爲咱們提供了這樣一個優秀的開源框架.git
編寫本次拓展出於的目的是爲了解決並非很是熟悉redis的童鞋可以方便的使用redis進行實際的運用 ,對原生的phpredis進行的封裝優化良好的註釋和例子但願能提供更好的幫助!github
注:本拓展並無開發完成,也沒進行嚴格的測試,此版本爲還處於開發階段的鑑賞版.redis
附上:centos
官網地址:http://www.phalapi.net/api
開源中國Git地址:http://git.oschina.net/dogstar/PhalApi/tree/release緩存
##安裝配置redis以及phpredis##服務器
基於centos6.5app
//下redis解壓安裝 wget http://download.redis.io/releases/redis-2.8.17.tar.gz tar zxvf redis-2.8.17.tar.gz cd redis-2.8.17 make make test make install //生成6379端口以及配置文件 cd utils ./install_server.sh Please select the redis port for this instance: [6379] Please select the redis config file name [/etc/redis/6379.conf] Please select the redis log file name [/var/log/redis_6379.log] Please select the data directory for this instance [/var/lib/redis/6379] Please select the redis executable path [/usr/local/bin/redis-server] //對配置文件進行配置 vi /etc/redis/6379.conf databases 100 #可使用的庫的數量修改16爲100 masterauth xxxxxxxxxxxxx #鏈接 master 的認證密碼 requirepass woyouwaimai76 #鏈接此redis的鏈接密碼 :wq //修改關閉redis須要密碼 vi /etc/rc.d/init.d/redis_6379 $CLIEXEC -p $REDISPORT -a woyouwaimai76 shutdown #stop redis須要密碼 //重啓redis service redis_6379 restart //添加到系統啓動項 chkconfig redis_6379 on //下載phpredis解壓安裝 wget https://github.com/nicolasff/phpredis/archive/master.zip unzip master.zip -d phpredis cd phpredis/phpredis-master phpize ./configure make && make install //在php.ini中註冊phpredis extension = redis.so //測試 <?php $auth = 'xxxxxxxxx'; $source = '127.0.0.1'; $host = '6379'; $redis = new Redis(); echo $redis->connect($host) ? "$host connect" : "$host fail"; if($auth){ echo $redis->auth($auth) ? " auth success" : " auth fail"; }
##註冊配置文件在Config.app文件下面## return array( //Redis配置項 'redis' => array( //Redis緩存配置項 'servers' => array( 'host' => '127.0.0.1', //Redis服務器地址 'port' => '6379', //Redis端口號 'prefix' => 'developers_', //Redis-key前綴 'auth' => 'woyouwaimai76', //Redis連接密碼 ), // Redis分庫對應關係 'DB' => array( 'developers' => 1, 'user' => 2, 'code' => 3, ), //使用阻塞式讀取隊列時的等待時間單位/秒 'blocking' => 5, ),框架
);
##在init入口文件註冊redis拓展##
//redis連接 DI()->redis = new Redis_Lite(DI()->config->get('app.redis.servers'));
##開始使用##
//存入永久的鍵值隊 DI()->redis->set_forever(鍵名,值,庫名); //獲取永久的鍵值隊 DI()->redis->get_forever(鍵名, 庫名); //存入一個有時效性的鍵值隊,默認600秒 DI()->redis->set_Time(鍵名,值, 庫名,有效時間); //獲取一個有時效性的鍵值隊 DI()->redis->get_Time(鍵名, 庫名); //寫入隊列左邊 DI()->redis->set_Lpush(隊列鍵名,值, 庫名); //讀取隊列右邊 DI()->redis->get_lpop(隊列鍵名, 庫名); //讀取隊列右邊 若是沒有讀取到阻塞必定時間(阻塞時間或讀取配置文件blocking的值) DI()->redis->get_Brpop(隊列鍵名,值, 庫名); //刪除一個鍵值隊適用於全部 DI()->redis->del(鍵名, 庫名); //自動增加 DI()->redis->get_incr(鍵名, 庫名); //切換DB而且得到操做實例 DI()->redis->get_redis(鍵名, 庫名);
更多使用方法請參考Redis_Lite文件