1. 程式人生 > >Redis系列-php怎麼通過redis擴充套件使用redis

Redis系列-php怎麼通過redis擴充套件使用redis

通過前面幾篇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