Redis系列-php怎麼通過redis擴充套件使用redis
阿新 • • 發佈:2019-01-10
通過前面幾篇blog,我們應該對redis有個大致的認識,這裡再講解下,php怎麼連線redis伺服器進行資料讀寫?
1、安裝php擴充套件
a)安裝php擴充套件phpredis:
[[email protected] tool]# git clone https://github.com/nicolasff/phpredis.git phpredis
[[email protected] tool]# cd phpredis/
[[email protected] phpredis]# /usr/local/php/bin/phpize #假設 php目錄:/usr/local/php
[[email protected] phpredis]# ./configure --with-php-config=/usr/local/php/bin/php-config
[[email protected] phpredis]# make
[[email protected] phpredis]# make install
如果順利,將得到類似如下提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
php擴充套件檔案目錄下,將有個redis.so檔案。
b)載入redis.so
在php.ini 檔案中,新增配置:
[redis]
extension=redis.so
重啟web伺服器,echo phpinfo() ,將看到大致如下顯示:
2、通過擴充套件訪問redis伺服器
php如何使用redis伺服器存取資料?無非是經過phpredis擴充套件模組,通過如下幾個步驟:
1、例項化redis類 【new redis()】
2、呼叫redis類方法,連線redis伺服器 【connect,pconnect】
3、設定連線選項【setOption】
4、存/取資料
5、關閉連線 【close】
如果使用預設選項,步驟3不需要。請參看下面的程式碼示例:
<?php
$redis = new Redis(); #例項化redis類
$redis->connect('127.0.0.1'); #連線伺服器
$redis->set('key', 'hello '); #呼叫方法,設定string型別值
$redis->append('key', 'world'); #修改string型別值
echo $redis->get('key'); #獲取redis key的值,並輸出顯示
echo $redis->type('key'); #獲取key 的資料型別
echo $redis->echo('will close...');# 輸出字串
$redis->close(); #關閉連線
通過上面的程式碼,我們基本完成一個簡單redis的存取操作。下面羅列一些Redis類的一些屬性及方法
a)連線redis server:
- connect :連線server
- pconnect :長連線
- auth :許可權驗證
- select :選擇DB
- close : 關閉連線
- setOption : 設定 client 選項
- getOption : 獲取client選項
- ping : ping redis server
- echo : 輸出 字串
注意,如果頻繁操作redis,不停地connect 和close會很耗效能的,這個時候,建議用pconnect 建立個長連線
b)字串讀寫函式
- append :在值的後面追加值
- decr :遞減一個key的值
- incr :遞增一個key的值
- get :獲取一個值
- set :設定一個值
- getSet :設定值,並返回老值
- mGet :批量獲取值
- mSet :批量設定值
- strlen :獲取值長度
注意:如果能用批量操作儘量用批量,減少頻繁連線redis資料庫效能
c)hash讀寫函式
- hDel :刪除一個多個域
- hExists :判斷一個hash域是否存在
- hGet :獲取hash域的值
- hGetAll :獲取所有域值
- hIncrBy :自增長一個hash int域的值
- hKeys :獲取hash 所有域
- hLen :獲取域個數
- hMGet :批量獲取域的值
- hMSet :批量設定域的值
- hSet :設定域的值
- hVals:得到所有域的值
d)list讀寫函式
- lInsert:插入元素
- lLen:list長度
- lPop:移除並獲取第一個顏色
- lPush:插入一個元素
- lRem:移除元素
- lSet:設定元素值
e)set
- sAdd:增加一個或多個成員
- sIsMember:是否包含
- sMembers:得到成員
- sMove:移動成員
- sPop:移除成員
- sRandMember:得到隨機成員
- sRem:刪除
f)sorted set
- zAdd:增加一個或多個
- zCard:成員個數
- zIncrBy:遞增成員score
- zRange:返回索引範圍內的成員
- zRangeByScore :返回score範圍內的成員
- zScore:獲取成員score
- zRem:移除一個或多個成員
更多資訊請參考:https://github.com/nicolasff/phpredis
http://redis.io/clients