Windows系統下PHP使用Redis

http://www.redis.net.cn/ 能找到所有關於redis的信息,包括安裝、命令、在編程語言中的使用等等。這裏就不講如何安裝redis了,因爲在上面的網站中都能找到。下面直接講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

  1. 重啓apache,執行phpinfo()函數,會發現多了redis的擴展。

  2. 開啓Redis服務,測試
    複製代碼
    $redis = new Redis();
    //連接redis服務器
    $redis->connect(‘127.0.0.1’, ‘6379’);
    echo "Connection to server sucessfully
    ";

    //查看服務是否運行
    echo "Server is running: " . $redis->ping();
    複製代碼
    結果如下,連接redis服務器成功

Connection to server sucessfully
Server is running: +PONG

至此,我們可以在php中痛痛快快的使用redis了。

複製代碼
1 $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(redis->exists(key); //判斷key值是否存在
11 redis>expire(redis->expire(key, 10); //設置key在10秒後過期
12
13 //redis string 字符串
14 redis>set(redis->set(key, $val);
15 redis>incr(redis->incr(key); //key值+1,除非val是整數,否則函數執行失敗
16 redis>decr(redis->decr(key); //key值-1,同上
17 redis>append(redis->append(key, “ue”); //追加key值內容
18 redis>strlen(redis->strlen(key); //返回key值的長度
19
20 //當第一次設置key值後,key值的數據類型就不能改變了。
21 redis>del(redis->del(key); //刪除key值
22
23 //redis hash 哈希
24 redis>hset(redis->hset(key, ‘field1’, ‘val1’); //設置一個key-value鍵值對
25 redis>hmset(redis->hmset(key, array(‘field2’=>‘val2’, ‘field3’=>‘val3’)); //設置多個k-v鍵值對
26 redis>hget(redis->hget(key, ‘field2’); //獲取hash其中的一個鍵值
27 redis>hmget(redis->hmget(key, array(‘field2’, ‘field1’)); //獲取hash的多個鍵值
28 redis>hgetall(redis->hgetall(key); //獲取hash中所有的鍵值對
29 redis>hlen(redis->hlen(key); //獲取hash中鍵值對的個數
30 redis>hkeys(redis->hkeys(key); //獲取hash中所有的鍵
31 redis>hvals(redis->hvals(key); //獲取hash中所有的值
32 redis>del(redis->del(key); //刪除key值
33
34 //redis list 列表
35 $index = $start = 0;
36 redis>lpush(redis->lpush(key, ‘val1’, ‘val2’); //在list的開頭添加多個值
37 redis>lpop(redis->lpop(key); //移除並獲取list的第一個元素
38 redis>rpop(redis->rpop(key); //移除並獲取list的最後一個元素
39 $stop = redis>llen(redis->llen(key) - 1; //獲取list的長度
40 redis>lindex(redis->lindex(key, $index); //通過索引獲取list元素
41 redis>lrange(redis->lrange(key, $start, $stop); //獲取指定範圍內的元素
42
43 redis>del(redis->del(key);
44
45 //redis set 無序集合
46 redis>sadd(redis->sadd(key, ‘val1’, ‘val2’); //向集合中添加多個元素
47 redis>scard(redis->scard(key); //獲取集合元素個數
48 redis>spop(redis->spop(key); //移除並獲取集合內隨機一個元素
49 redis>srem(redis->srem(key, ‘val1’, ‘val2’); //移除集合的多個元素
50 redis>sismember(redis->sismember(key, ‘val1’); //判斷元素是否存在於集合內
51
52 redis>del(redis->del(key);
53 //redis sorted set 有序集合
54 //有序集合裏的元素都和一個分數score關聯,就靠這個分數score對元素進行排序
55 redis>zadd(redis->zadd(key, $score1, $val1, $score2, $val2); //向集合內添加多個元素
56 redis>zcard(redis->zcard(key); //獲取集合內元素總數
57 redis>zcount(redis->zcount(key, $minScore, $maxScore); //獲取集合內分類範圍內的元素
58 redis>zrem(redis->zrem(key, $member1, $member2); //移除集合內多個元素

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章