下面直接講redis是如何在php中使用的,這裏我選擇的是phpredis擴展。
1. 下載phpredis擴展
執行phpinfo()函數,根據下面截圖中的“NTS”和“VCn”選擇對應的壓縮包,https://github.com/phpredis/phpredis/downloads。另外注意,PHP版本也要對應好。
2. PHP配置安裝擴展
首先把壓縮包中的 php_igbinary.dll和php_redis.dll 文件放到PHP安裝目錄的 ext 目錄中
然後在 php.ini 添加如下配置
extension=php_igbinary.dll
extension=php_redis.dll
3. 重啓apache,執行phpinfo()函數,會發現多了redis的擴展。
4. 開啓Redis服務,測試
$redis = new Redis();
//連接redis服務器
$redis->connect('127.0.0.1', '6379');
echo "Connection to server sucessfully <br/>";
//查看服務是否運行
echo "Server is running: " . $redis->ping();
結果如下,連接redis服務器成功
Connection to server sucessfully
Server is running: +PONG
至此,我們可以在php中痛痛快快的使用redis了。
$redis = new Redis();
2 //連接redis服務器
3 $redis->connect('127.0.0.1', '6379');
4
5
6 $key = "key";
7 $val = "val";
8
9 //redis key操作
10 $redis->exists($key); //判斷key值是否存在
11 $redis->expire($key, 10); //設置key在10秒後過期
12
13 //redis string 字符串
14 $redis->set($key, $val);
15 $redis->incr($key); //key值+1,除非val是整數,否則函數執行失敗
16 $redis->decr($key); //key值-1,同上
17 $redis->append($key, "ue"); //追加key值內容
18 $redis->strlen($key); //返回key值的長度
19
20 //當第一次設置key值後,key值的數據類型就不能改變了。
21 $redis->del($key); //刪除key值
22
23 //redis hash 哈希
24 $redis->hset($key, 'field1', 'val1'); //設置一個key-value鍵值對
25 $redis->hmset($key, array('field2'=>'val2', 'field3'=>'val3')); //設置多個k-v鍵值對
26 $redis->hget($key, 'field2'); //獲取hash其中的一個鍵值
27 $redis->hmget($key, array('field2', 'field1')); //獲取hash的多個鍵值
28 $redis->hgetall($key); //獲取hash中所有的鍵值對
29 $redis->hlen($key); //獲取hash中鍵值對的個數
30 $redis->hkeys($key); //獲取hash中所有的鍵
31 $redis->hvals($key); //獲取hash中所有的值
32 $redis->del($key); //刪除key值
33
34 //redis list 列表
35 $index = $start = 0;
36 $redis->lpush($key, 'val1', 'val2'); //在list的開頭添加多個值
37 $redis->lpop($key); //移除並獲取list的第一個元素
38 $redis->rpop($key); //移除並獲取list的最後一個元素
39 $stop = $redis->llen($key) - 1; //獲取list的長度
40 $redis->lindex($key, $index); //通過索引獲取list元素
41 $redis->lrange($key, $start, $stop); //獲取指定範圍內的元素
42
43 $redis->del($key);
44
45 //redis set 無序集合
46 $redis->sadd($key, 'val1', 'val2'); //向集合中添加多個元素
47 $redis->scard($key); //獲取集合元素個數
48 $redis->spop($key); //移除並獲取集合內隨機一個元素
49 $redis->srem($key, 'val1', 'val2'); //移除集合的多個元素
50 $redis->sismember($key, 'val1'); //判斷元素是否存在於集合內
51
52 $redis->del($key);
53 //redis sorted set 有序集合
54 //有序集合裏的元素都和一個分數score關聯,就靠這個分數score對元素進行排序
55 $redis->zadd($key, $score1, $val1, $score2, $val2); //向集合內添加多個元素
56 $redis->zcard($key); //獲取集合內元素總數
57 $redis->zcount($key, $minScore, $maxScore); //獲取集合內分類範圍內的元素
58 $redis->zrem($key, $member1, $member2); //移除集合內多個元素