ubunturedisphp
『壹』 ubuntu下redis 怎麼在程序中使用
一、獲取Redis
二、編譯安裝Redis
1、解壓源碼安裝包,通過tar -xvf redis-3.0.2.tar.gz解壓源碼,速度相當快;
2、進入解壓後的目錄,執行make編譯源碼;
make命令執行完成後,會在src目錄下生成6個可執行文件,分別是redis-server、redis-cli、redis-benchmark、察租redis-check-aof、redis-check-mp、redis-sentinel。
3、執行make install安裝,或者通過make PREFIX=/usr/local/redis install指定安裝目錄。這里默認安李搏裝,默認將之前生成的可執行文件拷貝到/usr/local/bin目錄下;
配置運行
三、修改配置文件
1、將源碼目錄下哪沒祥redis配置文件redis.conf拷貝到/etc/redis目錄下。
2、修改配置項,根據需要;如果不修改,使用默認配置也可以;
四、啟動服務:
1、查看埠是否被佔用:netstat –ntlp |grep 6379
方式一:通過命令redis-server 啟動,可在命令後加上`&`號使redis以後台程序方式運行;
方式二:通過指定配置文件啟動;redis-server /etc/redis/redis.conf
默認安裝的路徑已經加入環境變數中,可直接在命令行執行命令;
五、命令客戶端檢測鏈接
1、連接之前可以先檢測服務是否啟動;
2、測試啟動 redis-cli ping 返回PONG,啟動成功。
停止Redis:
關閉服務
redis-cli shutdown
如果非默認埠,可指定埠:
redis-cli -p 6380 shutdown
簡單操作:
1、兩種連接方式:
1:window DOS方式:tentel主機IP埠號(默認為127.0.0.1:6379)
2:linux客戶端方式:redis-cli 主機IP 埠號(默認為127.0.0.1 6379)
2、命令行操作:
#redis-cli
redis 127.0.0.1:6379> set name clj
OK
redis 127.0.0.1:6379> get name
"clj"
『貳』 如何在ubuntu14.04下配置php環境
ubuntu下的開發環境和windows下一樣都是jdk + android sdk + eclipse + adt 具體搭殲跡建方法型改臘有卜滑所不同,可參考以下鏈接:
http://jingyan..com/article/4d58d541dd939f9dd5e9c010.html
『叄』 php連接redis是什麼服務類型
要在PHP程序中使用Redis,首先需要確保Redis的PHP驅動程序和PHP安裝設置在機器上。可以查看PHP教程教你如何在機器上安裝PHP。現在,讓我們來看看一下如何設置Redis的PHP驅動程序。
需要從github上資料庫:https://github.com/nicolasff/phpredis下載phpredis。下載完成以後,將文件解壓縮到phpredis目錄。在Ubuntu上安裝這個擴展,可使用如下圖所示的命令來安裝。
cdphpredis
sudophpize
sudo./configure
sudomake
sudomakeinstall
現在,復制和粘貼「moles」文件夾的內容復制到PHP擴展目錄中,並在php.ini中添加以下幾行。
extension=redis.so
現在Redis和PHP安裝完成。
連接到Redis伺服器
<?php
//
$redis=newRedis();
$redis->connect('127.0.0.1',6379);
echo"Connectiontoserversucessfully";
//
echo"Serverisrunning:".$redis->ping();
?>
當執行程序時,會產生下面的結果:
Connectiontoserversucessfully
Serverisrunning:PONG
Redis的PHP字元串實例
<?php
//
$redis=newRedis();
$redis->connect('127.0.0.1',6379);
echo"Connectiontoserversucessfully";
//setthedatainredisstring
$redis->set("tutorial-name","Redistutorial");
//Getthestoreddataandprintit
echo"Storedstringinredis::".$redis.get("tutorial-name");
?>
當執行程序時,會產生下面的結果:
Connectiontoserversucessfully
Storedstringinredis::Redistutorial
Redis的PHP列表示例
<?php
//
$redis=newRedis();
$redis->connect('127.0.0.1',6379);
echo"Connectiontoserversucessfully";
//storedatainredislist
$redis->lpush("tutorial-list","Redis");
$redis->lpush("tutorial-list","Mongodb");
$redis->lpush("tutorial-list","Mysql");
//Getthestoreddataandprintit
$arList=$redis->lrange("tutorial-list",0,5);
echo"Storedstringinredis::"
print_r($arList);
?>
當執行程序時,會產生下面的結果:
Connectiontoserversucessfully
Storedstringinredis::
Redis
Mongodb
Mysql
Redis的PHP鍵例
<?php
//
$redis=newRedis();
$redis->connect('127.0.0.1',6379);
echo"Connectiontoserversucessfully";
//Getthestoredkeysandprintit
$arList=$redis->keys("*");
echo"Storedkeysinredis::"
print_r($arList);
?>
當執行程序時,會產生下面的結果:
Connectiontoserversucessfully
Storedstringinredis::
tutorial-name
tutorial-list
『肆』 ubuntu 下php 如何編寫以及該用什麼軟體編寫
,就別說別人了。在linux上用DW.....
--------------------------------------------------------------------------------
很多可用的。
比如使用eclipse,安裝上PDT插件。或者netbeans,或者komodo.
也可以使用bluefish,vim,gedit等等。
『伍』 php怎樣使用redis緩存數據
<?php
/**
* Redis緩存操作
* @author hxm
* @version 1.0
* @since 2015.05.04
*/
class RCache extends Object implements CacheFace
{
private $redis = null; //redis對象
private $sId = 1; //servier服務ID
private $con = null;//鏈接資源
/**
* 初始化Redis
*
* @return Object
*/
public function __construct()
{
if ( !class_exists('Redis') )
{
throw new QException('PHP extension does not exist: Redis');
}
$this->redis = new Redis();
}
/**
* 鏈接memcahce服務
*
* @access private
* @param string $key 關鍵字
* @param string $value 緩存內容
* @return array
*/
private function connect( $sid )
{
$file = $this->CacheFile();
require $file;
if(! isset($cache) )
{
throw new QException('緩存配置文件不存在'.$file);
}
$server = $cache[$this->cacheId];
$sid = isset($sid) == 0 ? $this->sId : $sid;//memcache服務選擇
if ( ! $server[$sid])
{
throw new QException('當前操作的緩存伺服器配置文件不存在');
}希望能幫到你,我還在後盾網學習呢,有不會的可以問我,一會有空回答你。(^ω^)
『陸』 Ubuntu安裝PHP
apt-get update 更新
apt-get install language-pack-en-base software-properties-common -y 解決語言沖突和中文亂碼
locale-gen en_US.UTF-8 語言環境
apt-get install vim -y 安裝vim
LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php 使用ppa安裝php
apt-get update 再次更新
apt-get install php7.4 php7.4-fpm php7.4-cli php7.4-dev php7.4-redis php7.4-mysql php7.4-curl php7.4-xml php7.4-json php7.4-gd php7.4-mbstring php7.4-zip php7.4-bcmath -y 安裝php和相關組件
php -v 查看php版本
『柒』 解決-ubuntu18.04 安裝redis無法啟動
Ubuntu 18.04
Port 6379
Redis version 5:4.0.9-1
主機上禁用了IPv6,而Ubuntu的redis-server軟體簡簡野包(版本5:4.0.9-1)附帶了:綁定127.0.0.1 :: 1
修改redis配置文件中的 bind 地址;注釋 bind 地址或將 bind 地址攔喊修咐敬改為 0.0.0.0
『捌』 ubuntu下redis安裝與登錄
默認無密碼登錄
密碼登錄:requirepass password
注碼汪釋掉綁定地址#bind 127.0.0.1
修改Redis的默認埠port 6379
命令行輸入 redis-cli
設置了密碼 redis-cli -a password
返回PONG表示暢通
命令遲亂仔行的幫助
退出陪廳命令
『玖』 ubuntu 編譯安裝redis 需要哪些依賴包
進入先前解壓後得到的文件夾(我的在/usr/redis),復制配置文件redis.conf到/etc/redis/下,並用vi命令編輯該文件,將「daemonize no」修改為「daemonize yes」,即設置成作為後台進程運行,修改完成後保存退出。
『拾』 redis是一個第三方插件嗎
對於變化頻率非常快的數據來說,如果還選擇傳統的靜態緩存方式(Memocached、FileSystem等)展示數據,可能在緩存的存取上會有很大的開銷,並不能很好的滿足需要,而Redis這樣基於內存的NoSQL資料庫,就非常適合擔任實時數據的容器。但是往往又有數據可靠性的需求,採用MySQL作為數據存儲前亂,不會因為內存問題而引起數據丟失,同時也可以利用關系資料庫的特模笑性實現很多功能。所以就會很自然的想到是否可以採用MySQL作為數據存儲引擎,Redis則作為Cache。而這種需求目前還沒有看到有特別成熟的解決方案或工具,因此採用Gearman+PHP+MySQLUDF的組合非同步實現MySQL到Redis的數據復制。MySQL到Redis數據復制方案無論MySQL還是Redis,自身都帶有數據同步的機制,比較常用的MySQL的Master/Slave模式,就是由Slave端分析Master的binlog來實現的,這樣的數據復制其實還是一個非同步過程,只不過當伺服器都在同一內網時,非同步的延遲幾乎可以忽略。那麼理論上也可以用同樣方式,分析MySQL的binlog文件並將數據插入Redis。但是這需要對binlog文件以及MySQL有非常深入的理解,同時由於binlog存在Statement/Row/Mixedlevel多種形式,分析binlog實現同步的工作量是非常大的。因此這里選擇了一種開發成本更加低廉的方式,借用已經比較成熟的MySQLUDF,將MySQL數據首先放入Gearman中,然後慧碼檔通過一個自己編寫的PHPGearmanWorker,將數據同步到Redis。比分析binlog的方式增加了不少流程,但是實現成本更低,更容易操作。Gearman的安裝與使用Gearman是一個支持分布式的任務分發框架。設計簡潔,獲得了非常廣泛的支持。一個典型的Gearman應用包括以下這些部分:GearmanJobServer:Gearman核心程序,需要編譯安裝並以守護進程形式運行在後台GearmanClient:可以理解為任務的收件員,比如在後台執行一個發送郵件的任務,可以在程序中調用一個GearmanClient並傳入郵件的信息,然後就可以將執行結果立即展示給用戶,而任務本身會慢慢在後台運行。GearmanWorker:任務的真正執行者,一般需要自己編寫具體邏輯並通過守護進程方式運行,GearmanWorker接收到GearmanClient傳遞的任務內容後,會按順序處理。以前曾經介紹過類似的後台任務處理項目Resque。兩者的設計其實非常接近,簡單可以類比為:GearmanJobServer:對應Resque的Redis部分GearmanClient:對應Resque的Queue操作GearmanWorker:對應Resque的Worker和Job這里之所以選擇Gearman而不是Resque是因為Gearman提供了比較好用的MySQLUDF,工作量更小。安裝Gearman及PHPGearman擴展以下均以Ubuntu12.04為例。apt-getinstallgearmangearman-serverlibgearman-dev檢查Gearman的運行狀況:/etc/init.d/gearman-job-serverstatus*gearmandisrunning說明Gearman已經安裝成功。PHP的Gearman擴展可以通過pecl直接安裝peclinstallgearmanecho"extension=gearman.so">/etc/php5/conf.d/gearman.iniservicephp5-fpmrestart但是實測發現ubuntu默認安裝的gearman版本過低,直接運行peclinstallgearman會報錯configure:error:libgearmanversion1.1.0orlaterrequired因此Gearman+PHP擴展建議通過編譯方式安裝,這里為了簡單說明,選擇安裝舊版本擴展:peclinstallgearman-1.0.3Gearman+PHP實例為了更容易理解後文Gearman的運行流程,這里不妨從一個最簡單的Gearman實例來說明,比如要進行一個文件處理的操作,首先編寫一個GearmanClient並命名為client.php:addServer();$client->doBackground('writeLog','Logcontent');echo'文件已經在後台操作';運行這個文件,相當於模擬用戶請求一個Web頁面後,將處理結束的信息返回用戶:phpclient.php查看一下Gearman的狀況:(echostatus;sleep0.1)|netcat127.0.0.14730可以看到輸出為writeLog100.說明已經在Gearman中建立了一個名為writeLog的任務,並且有1個任務在隊列等待中。而上面的4列分別代表當前的Gearman的運行狀態:任務名稱在等待隊列中的任務正在運行的任務正在運行的Worker進程可以使用watch進行實時監控:watch-n1"(echostatus;sleep0.1)|nc127.0.0.14730"然後我們需要編寫一個GearmanWorker命名為worker.php:addServer();$worker->addFunction('writeLog','writeLog');while($worker->work());functionwriteLog($job){$log=$job->workload();file_put_contents(__DIR__.'/gearman.log',$log."\n",FILE_APPEND|LOCK_EX);}Worker使用一個while死循環實現守護進程,運行phpworker.php可以看到Gearman狀態變為:writeLog001同時查看同目錄下gearman.log,內容應為從Client傳入的值Logcontent。通過MySQLUDF+Trigger同步數據到GearmanMySQL要實現與外部程序互通的最好方式還是通過MySQLUDF(MySQLuserdefinedfunctions)來實現。為了讓MySQL能將數據傳入Gearman,這里使用了lib_mysqludf_json和gearman-mysql-udf的組合。安裝lib_mysqludf_json使用lib_mysqludf_json的原因是因為Gearman只接受字元串作為入口參數,可以通過lib_mysqludf_json將MySQL中的數據編碼為JSON字元串apt-getinstalllibmysqlclient-devwget/mysqludf/lib_mysqludf_json/archive/master.zipunzipmaster.zipcdlib_mysqludf_json-master/rmlib_mysqludf_json.sogcc$(mysql_config--cflags)-shared-fPIC-olib_mysqludf_json.solib_mysqludf_json.c可以看到重新編譯生成了lib_mysqludf_json.so文件,此時需要查看MySQL的插件安裝路徑:mysql-uroot-pPASSWORD--execute="showvariableslike'%plugin%';"+---------------+------------------------+|Variable_name|Value|+---------------+------------------------+|plugin_dir|/usr/lib/mysql/plugin/|+---------------+------------------------+然後將lib_mysqludf_json.so文件復制到對應位置:cplib_mysqludf_json.so/usr/lib/mysql/plugin/最後登入MySQL運行語句注冊UDF函數:CREATEFUNCTIONjson_objectRETURNSSTRINGSONAME'lib_mysqludf_json.so';安裝gearman-mysql-udf方法幾乎一樣:apt-getinstalllibgearman-devwgetmake&&makeinstall登入MySQL運行語句注冊UDF函數:CREATEFUNCTIONgman_do_backgroundRETURNSSTRINGSONAME'libgearman_mysql_udf.so';CREATEFUNCTIONgman_servers_setRETURNSSTRINGSONAME'libgearman_mysql_udf.so';最後指定Gearman伺服器的信息:SELECTgman_servers_set('127.0.0.1:4730');通過MySQL觸發器實現數據同步最終同步哪些數據,同步的條件,還是需要根據實際情況決定,比如將數據表data的數據在每次更新時同步,那麼編寫Trigger如下:DELIMITER$$@ret=gman_do_background('syncToRedis',json_object(NEW.idas`id`,NEW.volumeas`volume`));END$$DELIMITER;嘗試在資料庫中更新一條數據查看Gearman是否生效。GearmanPHPWorker將MySQL數據非同步復制到RedisRedis作為時下當熱的NoSQL緩存解決方案無需過多介紹,其安裝及使用也非常簡單:apt-getinstallredis-serverpeclinstallredisecho"extension=redis.so">/etc/php5/conf.d/redis.ini然後編寫一個GearmanWorker:redis_worker.php#!/usr/bin/envphpaddServer();$worker->addFunction('syncToRedis','syncToRedis');$redis=newRedis();$redis->connect('127.0.0.1',6379);while($worker->work());functionsyncToRedis($job){global$redis;$workString=$job->workload();$work=json_decode($workString);if(!isset($work->id)){returnfalse;}$redis->set($work->id,$workString);}最後需要將Worker在後台運行:nohupphpredis_worker.php&通過這種方式將MySQL數據復制到Redis,經測試單Worker基本可以瞬時完成。