Redis教程:php怎么通過(guò)redis擴(kuò)展使用redis
2020-03-17 12:43:46
供稿:網(wǎng)友
1、安裝php擴(kuò)展
a)安裝php擴(kuò)展phpredis:
[plain]
[root@xsf002 tool]# git clone https://github.com/nicolasff/phpredis.git phpredis
[root@xsf002 tool]# cd phpredis/
[root@xsf002 phpredis]# /usr/local/php/bin/phpize #<SPAN style="TEXT-INDENT: 20px">假設(shè) php目錄:</SPAN><SPAN style="TEXT-INDENT: 20px">/usr/local/php</SPAN>
[root@xsf002 phpredis]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@xsf002 phpredis]# make
[root@xsf002 phpredis]# make install
[root@xsf002 tool]# git clone https://github.com/nicolasff/phpredis.git phpredis
[root@xsf002 tool]# cd phpredis/
[root@xsf002 phpredis]# /usr/local/php/bin/phpize #假設(shè) php目錄:/usr/local/php
[root@xsf002 phpredis]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@xsf002 phpredis]# make
[root@xsf002 phpredis]# make install 如果順利,將得到類(lèi)似如下提示:
[plain]
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ php擴(kuò)展文件目錄下,將有個(gè)redis.so文件。
b)加載redis.so
在php.ini 文件中,添加配置:
[plain]
[redis]
extension=redis.so
[redis]
extension=redis.so重啟web服務(wù)器,echo phpinfo() ,將看到大致如下顯示:
/
2、通過(guò)擴(kuò)展訪問(wèn)redis服務(wù)器
php如何使用redis服務(wù)器存取數(shù)據(jù)?無(wú)非是經(jīng)過(guò)phpredis擴(kuò)展模塊,通過(guò)如下幾個(gè)步驟:
1、實(shí)例化redis類(lèi) 【new redis()】
2、調(diào)用redis類(lèi)方法,連接redis服務(wù)器 【connect,pconnect】
3、設(shè)置連接選項(xiàng)【setOption】
4、存/取數(shù)據(jù)
5、關(guān)閉連接 【close】
如果使用默認(rèn)選項(xiàng),步驟3不需要。請(qǐng)參看下面的代碼示例:
[php]
<?php
$redis = new Redis(); #實(shí)例化redis類(lèi)
$redis->connect('127.0.0.1'); #連接服務(wù)器
$redis->set('key', 'hello '); #調(diào)用方法,設(shè)置string類(lèi)型值
$redis->append('key', 'world'); #修改string類(lèi)型值
echo $redis->get('key'); #獲取redis key的值,并輸出顯示
echo $redis->type('key'); #獲取key 的數(shù)據(jù)類(lèi)型
echo $redis->echo('will close...');# 輸出字符串
$redis->close(); #關(guān)閉連接
<?php
$redis = new Redis(); #實(shí)例化redis類(lèi)
$redis->connect('127.0.0.1'); #連接服務(wù)器
$redis->set('key', 'hello '); #調(diào)用方法,設(shè)置string類(lèi)型值
$redis->append('key', 'world'); #修改string類(lèi)型值
echo $redis->get('key'); #獲取redis key的值,并輸出顯示
echo $redis->type('key'); #獲取key 的數(shù)據(jù)類(lèi)型
echo $redis->echo('will close...');# 輸出字符串
$redis->close(); #關(guān)閉連接 通過(guò)上面的代碼,我們基本完成一個(gè)簡(jiǎn)單redis的存取操作。下面羅列一些Redis類(lèi)的一些屬性及方法
a)連接redis server:
connect :連接server
pconnect :長(zhǎng)連接
auth :權(quán)限驗(yàn)證
select :選擇DB
close : 關(guān)閉連接
setOption : 設(shè)置 client 選項(xiàng)
getOption : 獲取client選項(xiàng)
ping : ping redis server
echo : 輸出 字符串
注意,如果頻繁操作redis,不停地connect 和close會(huì)很耗性能的,這個(gè)時(shí)候,建議用pconnect 建立個(gè)長(zhǎng)連接
b)字符串讀寫(xiě)函數(shù)
append :在值的后面追加值
decr :遞減一個(gè)key的值
incr :遞增一個(gè)key的值
get :獲取一個(gè)值
set :設(shè)置一個(gè)值
getSet :設(shè)置值,并返回老值
mGet :批量獲取值
mSet :批量設(shè)置值
strlen :獲取值長(zhǎng)度
注意:如果能用批量操作盡量用批量,減少頻繁連接redis數(shù)據(jù)庫(kù)性能
c)hash讀寫(xiě)函數(shù)
hDel :刪除一個(gè)多個(gè)域
hExists :判斷一個(gè)hash域是否存在
hGet :獲取hash域的值
hGetAll :獲取所有域值
hIncrBy :自增長(zhǎng)一個(gè)hash int域的值
hKeys :獲取hash 所有域
hLen :獲取域個(gè)數(shù)
hMGet :批量獲取域的值
hMSet :批量設(shè)置域的值
hSet :設(shè)置域的值
hVals:得到所有域的值
d)list讀寫(xiě)函數(shù)
lInsert:插入元素
lLen:list長(zhǎng)度
lPop:移除并獲取第一個(gè)顏色
lPush:插入一個(gè)元素
lRem:移除元素
lSet:設(shè)置元素值
e)set
sAdd:增加一個(gè)或多個(gè)成員
sIsMember:是否包含
sMembers:得到成員
sMove:移動(dòng)成員
sPop:移除成員
sRandMember:得到隨機(jī)成員
sRem:刪除
f)sorted set
zAdd:增加一個(gè)或多個(gè)
zCard:成員個(gè)數(shù)
zIncrBy:遞增成員score
zRange:返回索引范圍內(nèi)的成員
zRangeByScore :返回score范圍內(nèi)的成員
zScore:獲取成員score
zRem:移除一個(gè)或多個(gè)成員