Redis 連接命令主要是用於連接 redis 服務。
redis連接命令介紹
- AUTH password
- 說明:AUTH命令用來檢測給定的密碼和配置文件中的密碼是否相同
- 返回:如果密碼匹配則返回OK,否則返回一個錯誤
- 實例:
10.117.8.188:6379> AUTH 1245 //沒有設置redis密碼 (error) ERR Client sent AUTH, but no password is set 10.117.8.188:6379> CONFIG SET requirepass "123456" OK 10.117.8.188:6379> AUTH 123456 OK
- ECHO message
- 說明:用於打印給定的字符串
- 返回:返回字符串本身
- 實例:
10.117.8.188:6379> ECHO 'miss you' "miss you"
- PING
- 說明:客戶端向redis服務器發送一個PING,判斷服務器是否正常運行,正常返回PONG。通常用來測試與服務器的連接是否有效,或者用於測量延遲值
- 返回:正常的返回PONG,否則返回一個錯誤
- 實例:
10.117.8.188:6379> ping //連接正常 PONG 10.117.8.188:6379> ping //連接不正常 Could not connect to Redis at 10.117.8.188:6379: Connection refused
- QUIT
- 說明:用於關閉當前客戶端與redis服務器的連接。一旦所有等待中的回覆順利的寫入到客戶端,連接就會自動關閉。
- 返回:總是返回OK;redis客戶端中執行直接返回到命令行
- 實例:
10.117.8.188:6379> QUIT www@iZ23dvyt70vZ:~ $
- SELECT index
- 說明:用於切換到指定的數據庫,index是指需要切換到的數據庫的索引值,索引從0開始。redis服務默認連接0號數據庫。總共16個數據庫(0-15)
- 返回:總是返回OK
- 實例:
10.117.8.188:6379> SELECT 1 OK 10.117.8.188:6379[1]> SELECT 3 //注意 Redis 現在的命令提示符多了個 [1] OK 10.117.8.188:6379[3]> SELECT 15 //注意 Redis 現在的命令提示符多了個 [3] OK
phpredis使用redis連接
- connect(host,port,timeout,reserved,retry_interval,read_timeout), open()
- 說明:連接到redis服務,兩個函數功能是相同的
- 參數:
- host:string類型,可以是主機IP地址,也可以是unix域套接字的路徑,必要參數
- port:int類型,redis的對外端口,可選參數
- timeout:float類型,連接的過期時間(s/秒),0表示無限制連接時間,可選參數
- reserved:如果retry_interval存在,則reserved爲空null
- retry_interval:int類型,斷線重連時間,單位毫秒,可選項
- read_timeout:float類型,讀取數據過期時間,可選項
- 返回:bool值,成功返回true,失敗返回false
- 實例:
public function redisTestAction(){ $redis = new \Redis(); $res = $redis->connect('10.117.8.188',6379); var_dump($res); // bool(true) }
- pconnect(host,port,timeout,reserved,retry_interval,read_timeout), popen()
- 說明:和connect函數相似,參數類型和個數都一致,區別在於:pconnect是長連接,可以減少多次連接redis服務造成的資源浪費。
- auth(password)
- 說明:使用密碼對連接進行身份認證。注意:密碼已文本的形式通過網絡發送(安全係數低)
- 參數:password(驗證身份用的密碼)
- 返回:驗證成功返回true,失敗則返回false
- 實例:
public function redisTestAction(){ $redis = new \Redis(); $redis->connect('10.117.8.188',6379); $res = $redis->auth('123456'); var_dump($res); // 驗證失敗,bool(false) }
- select(dbindex)
- 說明:切換當前連接所用的數據庫
- 參數:dbindex(數據庫索引值,0-15共16個數據庫)
- 返回:成功切換返回true,失敗則返回false
- 實例:
public function redisTestAction(){ $redis = new \Redis(); $redis->connect('10.117.8.188',6379); $res = $redis->select('12'); var_dump($res); //切換成功,返回bool(true) }
- swapdb(db1,db2)
- 說明:自動交換一個Redis數據庫和另一個Redis數據庫
- 參數:db1(給定的數據庫1),db2(給定的數據庫2)
- 返回:成功返回true,失敗返回false
- **注意:**該函數需要redis >= 4.0
- 實例:redis版本2.8.9,無法執行該函數
- close()
- 說明:斷開redis客戶端與服務端的連接
- 參數:無
- 返回:斷開成功返回true,失敗返回false
- **注意:**close函數在phpredis >= 4.2纔可以斷開redis長連接(pconnect)
- 實例:
public function redisTestAction(){ $redis = new \Redis(); $redis->connect('10.117.8.188',6379); $res = $redis->close(); var_dump($res); // 斷開成功,返回:bool(true) }
- setOption(name,value)
- 說明:設置當前redis客戶端的選項
- 參數:
- name:選項名稱
- value:選項的值
- 返回:選項設置成功返回true,失敗返回false
- 實例:
public function redisTestAction(){ $redis = new \Redis(); $redis->connect('10.117.8.188',6379); $res = $redis->setOption(\Redis::OPT_PREFIX, 'myAppName:'); var_dump($res);//bool(true) 設置鍵前綴 $res1=$redis->setOption(\Redis::OPT_SERIALIZER,\Redis::SERIALIZER_PHP); var_dump($res1);//bool(true),設置序列化器 }
- getOption(name)
- 說明:獲取當前客戶端設置的選項
- 參數:name(選項的名稱)
- 返回:選項的值
- 實例:
public function redisTestAction(){ $redis = new \Redis(); $redis->connect('10.117.8.188',6379); $redis->setOption(\Redis::OPT_PREFIX, 'myAppName:'); $redis->setOption(\Redis::OPT_SERIALIZER, \Redis::SERIALIZER_PHP); $res = $redis->getOption(\Redis::OPT_PREFIX); var_dump($res); // string(10) "myAppName:" $res1 = $redis->getOption(\Redis::OPT_SERIALIZER); var_dump($res1); // int(1) }
- ping()
- 說明:確認當前連接的狀態
- 參數:無
- 返回:狀態連接正確返回PONG,失敗則返回一個連接錯誤
- 實例:
public function redisTestAction(){ $redis = new \Redis(); $redis->connect('10.117.8.188',6379); $res = $redis->ping(); var_dump($res); // string(5) "+PONG" }
- echo(message)
- 說明:向redis服務器發送一個字符串,redis服務器返回一個相同的字符串回來
- 參數:將要發送的字符串
- 返回:返回發送出去的字符串
- 實例:
public function redisTestAction(){ $redis = new \Redis(); $redis->connect('10.117.8.188',6379); $res = $redis->echo('testmessage'); var_dump($res); // string(11) "testmessage" }