redisphp客戶端,php redis使用

本文目錄一覽:

如何測試 php安裝成功redis

解壓安裝:

複製代碼代碼如下:

tar -xvf redis-2.8.17.tar.gz

make

sudo make install

為方便使用,在/usr目錄下創建redis目錄,講如下幾個文件拷貝到/usr/redis/目錄下:

複製代碼代碼如下:

/yourdir/redis-2.8.17/redis.conf

/yourdir/redis-2.8.17/src/redis-benchmark

/yourdir/redis-2.8.17/src/redis-server

/yourdir/redis-2.8.17/src/redis-cli

當然,你也可以通過軟連接的方式達到方便使用的目的。此外,你也可以將redis-server加入開機啟動,此處從略。

2.redis測試

1)先開啟redis服務端程序

為方便測試,我們將redis.conf配置文件中的loglevel和logfile的值,修改後如下:

loglevel debug

logfile 「/tmp/redis.log」

jay13@ubuntu:/usr/redis$ redis-server redis.conf

2)開啟redi客戶端,通過客戶端向redis數據庫中進行增刪改查操作。整個操作過程中生成的日誌可以到/tmp/redis.log中查看。

以最簡單的key操作為例,實例如下:

複製代碼代碼如下:

jay13@ubuntu:/usr/redis$ redis-cli

127.0.0.1:6379 set jay13 jb51.net

OK

127.0.0.1:6379 set jay hello,world

OK

127.0.0.1:6379 get jay

“hello,world”

127.0.0.1:6379 get jay13

“jb51.net”

127.0.0.1:6379 del jay

(integer) 1

127.0.0.1:6379 get jay

(nil)

127.0.0.1:6379 set jay13

OK

127.0.0.1:6379 get jay13

“”

3.安裝phpredis擴展

在使用sudo apt-get install php5安裝php時,默認是沒有安裝phpize的,我們安裝phpredis時,需要用到phpize,因此,需要先安裝phpize。

1)我們通過安裝php開發者工具來獲取phpize。執行如下命令即可:

複製代碼代碼如下:

sudo apt-get install php5-dev

2)獲取phpredis源文件

按照GitHub上的說明進行如下安裝時,

複製代碼代碼如下:

phpize

./configure –enable-redis-igbinary

make make install

可能會出現如下出錯說明:

複製代碼代碼如下:

checking for igbinary includes… configure: error: Cannot find igbinary.h

怎麼看 php 本地redis是phpredis還是predis

Redis支持的客戶端種類非常多,包括C、Java、PHP、Python等,本文主要介紹PHP客戶端的安裝和使用。

Redis的客戶端實際上擔負了通過網絡協議與Redis Server進行通信的過程,通信的過程必須遵循協議規範,讓客戶的調用更加符合特定語言的使用習慣。

訂單超時,活動過期解決方案:php監聽redis鍵重複觸發引發事件

訂單超時,活動過期解決方案:php監聽redis鍵重複觸發引發事件

Redis的2.8.0版本之後可用,鍵空間消息(Redis Keyspace Notifications),配合2.0.0版本之後的SUBSCRIBE 可以完成這個定時任務的操作了,定時的單位是秒。

1.我們先訂閱頻道稱為 redisChat

2.現在,我們重新開啟個redis客戶端,然後在同一個頻道redisChat發佈消息,訂閱者可以接收到消息。

接收到的消息如下:

3.Key過期事件的Redis配置

需要這裡配置notify-keyspace-events的參數為「EX」 .X代表了過期事件。notify-keyspace-events 「Ex」保存配置後,重啟Redis的服務,使配置生效。

PHP Redis實現訂閱鍵空間通知

redis實例化類:

redis.class.php

1個

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18歲

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

//遇到類別重複的報錯,所有叫Redis2

classRedis2  

{

    private$redis;

    publicfunction__construct($host= ‘127.0.0.1’, $port= 6379)

    {

        $this-redis = newRedis();

        $this-redis-connect($host, $port);

    }

    publicfunctionsetex($key, $time, $val)

    {

        return$this-redis-setex($key, $time, $val);

    }

    publicfunctionset($key, $val)

    {

        return$this-redis-set($key, $val);

    }

    publicfunctionget($key)

    {

        return$this-redis-get($key);

    }

    publicfunctionexpire($key= null, $time= 0)

    {

        return$this-redis-expire($key, $time);

    }

    publicfunctionpsubscribe($patterns= array(), $callback)

    {

        $this-redis-psubscribe($patterns, $callback);

    }

    publicfunctionsetOption()

    {

        $this-redis-setOption(\Redis::OPT_READ_TIMEOUT, -1);

    }

}

過期事件的訂閱:

psubscribe.php

1個

2

3

4

5

6

7

8

9

10

11

12

13

14

15

require_once’./Redis.class.php’;

$redis= new\Redis2();

// 解決Redis客戶端訂閱時候超時情況

$redis-setOption();

$redis-psubscribe(array(‘__keyevent@0__:expired’), ‘keyCallback’);

// 回調函數,這裡寫處理邏輯

functionkeyCallback($redis, $pattern, $chan, $msg)

{

    echo”Pattern: $pattern\n”;

    echo”Channel: $chan\n”;

    echo”Payl

    oad: $msg\n\n”;

    //keyCallback為訂閱事件後的回調函數,這裡寫業務處理邏輯,

    //比如前面提到的商品不支付自動撤單,這裡就可以根據訂單id,來實現自動撤單

}

設置過期事件:

index.php

1個

2

3

4

require_once’./Redis.class.php’;

$redis= new\Redis2();

$order_id= 123;

$redis-setex(‘order_id’,10,$order_id);

先用命令行模式執行 psubscribe.php

在瀏覽器訪問 index.php

效果如下:

如何在 Windows 環境下安裝 Redis 和 phpredis 模塊

1下載安裝文件,選擇穩定版本2點擊安裝exe文件,進行安裝。選擇好路徑,一直到安裝結束即可。

3點擊Service查看Redis服務是否正確的安裝。Windows–》Service.msc。默認的端口為6379。服務已啟動。

4使用客戶端工具進行連接,出現如下畫面即成功。

5使用CMD工具,安裝另一個Redis實例服務,端口為6369.需要提前建好6369端口使用的conf文件

如:C:\Users\GrayE:\redis-2.8.17\redis-server.exe –service-installE:\redis-2.8.17\redis6369.conf –service-name RedisServer6369 –port 6369

試驗了幾次都沒有提示成功的信息,但是查看服務成功了,而且用客戶端連接也成功了。

6查看6369端口的redis服務

7使用客戶端連接6369 redis服務,出現如下界面表示成功

8至此,大功告成。

怎麼安裝redis PHP擴展,windows下

1、根據php信息,如下圖,下載合適的 phpredis.dll擴展包。下載地址:  

用phpinfo 查看到時TS vc9。那麼下載的版本就對應好

ts版 phpredis_5.4_vc9_ts.7z                         nts版  phpredis_5.4_vc9_nts.7z   

2、解壓縮之後得到兩個文件,分別將兩個文件複製到php 目錄的 ext目錄下。

3、修改php.ini文件。加入extension 擴展

extension=php_igbinary.dll

extension=php_redis.dll

4、 重啟apache ,查看phpinfo 界面。如下則表示安裝成功

5、phpredis   hellow word    開始你的redis使用

?php

$redis = new Redis();                   //redis對象

$redis-connect(“192.168.60.6″,”6379”); //連接redis服務器

$redis-set(“test”,”Hello World”);      //set字符串值

echo $redis-get(“test”);               //獲取值

?

感謝網友分享。

redis的php客戶端為什麼連接數這麼大

第一,Redis的默認時間設置在redis.conf中timeout是300秒,請問是否修改過這個參數,修改為多少了? 第二,你用的這個redis擴展,這種用法$redis-connect(‘127.0.0.1’, 6379);意味着超時時間未設置,會一直不超時。關於這點,請詳細查看該擴展的文章。

根據你提供的不多的信息估計,最可能的是第二條中你未設置連接時間,用了默認不超時的方式。但是你說的是在30秒後斷開,又不是符合redis.conf的默認配置。除非你修改了默認配置就說的通了。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/207072.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-08 14:20
下一篇 2024-12-08 14:20

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 在CentOS上安裝Redis

    Redis是一款非關係型數據庫,它支持多種數據結構,包括字符串、哈希、列表、集合、有序集合等。Redis運行內存內並且支持數據持久化,它還可以應用於緩存、消息隊列等場景。本文將介紹…

    編程 2025-04-28
  • Python調用crt telnet客戶端的實現

    本篇文章將詳細介紹如何使用Python調用crt telnet客戶端。我們將從以下幾個方面進行闡述: 一、安裝crt telnet客戶端 首先,我們需要下載並安裝crt telne…

    編程 2025-04-28
  • 解析spring.redis.cluster.max-redirects參數

    本文將圍繞spring.redis.cluster.max-redirects參數進行詳細闡述,從多個方面解讀它的意義與作用,並給出相應的代碼示例。 一、基礎概念 在介紹sprin…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • 跨域通信浮標——實現客戶端之間的跨域通信

    本文將介紹跨域通信浮標的使用方法,該浮標可以實現客戶端之間的跨域通信,解決了瀏覽器同源策略的限制,讓開發者能夠更加方便地進行跨域通信。 一、浮標的原理 跨域通信浮標的原理是基於浮動…

    編程 2025-04-27
  • Redis Bitmap用法介紹

    Redis是一款高性能的內存數據庫,支持多種數據類型,其中之一便是bitmap。Redis bitmap(位圖)是一種用二進制位來表示元素是否在集合中的數據結構。由於使用了二進制位…

    編程 2025-04-27
  • Python服務器客戶端

    本文將從以下幾個方面對Python服務器客戶端進行詳細闡述:socket編程、HTTP協議、Web框架、異步IO。 一、socket編程 Python的socket模塊是為網絡編程…

    編程 2025-04-27

發表回復

登錄後才能評論