本文目錄一覽:
- 1、php 用redis儲存session(修改PHP配置文件的),是哪種方式鏈接redis的
- 2、如何利用PHP訪問帶有密碼的Redis
- 3、php 連接redis,怎麼判斷Redis是否掛掉
- 4、PHP怎麼設置鏈接redis的超時時間
- 5、php連接redis是什麼服務類型
- 6、PHP Redis是使用connect還是pconnect
php 用redis儲存session(修改PHP配置文件的),是哪種方式鏈接redis的
我的習慣是直接修改php.ini
session.save_handler = redis
session.save_path = “tcp://host1:6379?weight=1, tcp://host2:6379?weight=2timeout=2.5, tcp://host3:6379?weight=2persistent=1”
weight 伺服器權重
persistent 持久性(整數,應該是1或0)
timeout 超時時長
如何利用PHP訪問帶有密碼的Redis
1. 設置Redis密碼,以提供遠程登陸
打開redis.conf配置文件,找到requirepass,然後修改如下:
requirepass yourpassword
yourpassword就是redis驗證密碼,設置密碼以後發現可以登陸,但是無法執行命令了。
命令如下:
redis-cli -h 127.0.0.1 -p 6379//啟動redis客戶端,並連接伺服器
keys * //輸出伺服器中的所有key
報錯如下
(error) ERR operation not permitted
這時候你可以用授權命令進行授權,就不報錯了
命令如下:
auth youpassword
2. PHP訪問Redis
$redis = new Redis();
$conn = $redis-connect(‘localhost’, 6379);
$auth = $redis-auth(‘20160601’); //設置密碼
var_dump($auth);
$redis-set(‘access_token’, “123213213213213213”);
$redis-set(‘expired_time’, 1464344863);
var_dump($redis-get(“access_token”));
var_dump($redis-get(“expired_time”));
php 連接redis,怎麼判斷Redis是否掛掉
一般鏈接redis,如果鏈接不上,或者redis掛掉,都會發生超時,你可以設置超時時間短一點,比如5秒。如果5秒鏈接不上則不連接了,繼續往下,不影響整體代碼運行。
?php
$redis = new \Redis();
$redis-connect($config[‘host’],$config[‘port’], $config[‘timeout’]);
$redis-ping(); //檢測當前鏈接狀態,返回PONG或者拋出異常。
PHP怎麼設置鏈接redis的超時時間
$this-redis-connect($host, $port,3); 3秒連接超時
$this-redis = new Redis();
$this-redis-connect($host, $port);
$this-redis-auth($auth);
這樣解決就可以了,簡單粗暴
php連接redis是什麼服務類型
要在PHP程序中使用Redis,首先需要確保 Redis 的PHP驅動程序和 PHP 安裝設置在機器上。可以查看 PHP教程 教你如何在機器上安裝PHP。現在,讓我們來看看一下如何設置 Redis 的PHP驅動程序。
需要從 github 上資料庫: 下載 phpredis。下載完成以後,將文件解壓縮到 phpredis 目錄。在 Ubuntu 上安裝這個擴展,可使用如下圖所示的命令來安裝。
cd phpredis
sudo phpize
sudo ./configure
sudo make
sudo make install
現在,複製和粘貼「modules」文件夾的內容複製到PHP擴展目錄中,並在 php.ini 中添加以下幾行。
extension = redis.so
現在 Redis 和 PHP 安裝完成。
連接到Redis伺服器
?php
//Connecting to Redis server on localhost
$redis = new Redis();
$redis-connect(‘127.0.0.1’, 6379);
echo “Connection to server sucessfully”;
//check whether server is running or not
echo “Server is running: ” . $redis-ping();
?
當執行程序時,會產生下面的結果:
Connection to server sucessfully
Server is running: PONG
Redis的PHP字元串實例
?php
//Connecting to Redis server on localhost
$redis = new Redis();
$redis-connect(‘127.0.0.1’, 6379);
echo “Connection to server sucessfully”;
//set the data in redis string
$redis-set(“tutorial-name”, “Redis tutorial”);
// Get the stored data and print it
echo “Stored string in redis:: ” . $redis.get(“tutorial-name”);
?
當執行程序時,會產生下面的結果:
Connection to server sucessfully
Stored string in redis:: Redis tutorial
Redis的PHP列表示例
?php
//Connecting to Redis server on localhost
$redis = new Redis();
$redis-connect(‘127.0.0.1’, 6379);
echo “Connection to server sucessfully”;
//store data in redis list
$redis-lpush(“tutorial-list”, “Redis”);
$redis-lpush(“tutorial-list”, “Mongodb”);
$redis-lpush(“tutorial-list”, “Mysql”);
// Get the stored data and print it
$arList = $redis-lrange(“tutorial-list”, 0 ,5);
echo “Stored string in redis:: “
print_r($arList);
?
當執行程序時,會產生下面的結果:
Connection to server sucessfully
Stored string in redis::
Redis
Mongodb
Mysql
Redis的PHP鍵例
?php
//Connecting to Redis server on localhost
$redis = new Redis();
$redis-connect(‘127.0.0.1’, 6379);
echo “Connection to server sucessfully”;
// Get the stored keys and print it
$arList = $redis-keys(“*”);
echo “Stored keys in redis:: “
print_r($arList);
?
當執行程序時,會產生下面的結果:
Connection to server sucessfully
Stored string in redis::
tutorial-name
tutorial-list
PHP Redis是使用connect還是pconnect
性能上選擇pconnect會快些,一般小網站使用pconnect connect性能相差可以不計,web項目多數慢的是sql查詢,懶人就先 connect,避免 pconnect中遇著坑。
pconnect 要注意坑, 因為復用連接,上一次連接設置的中調用會影響下一個連接。
—————————————————————-
redis 在沒有選擇庫時默認是select 0
如 a請求中 select (2); set(‘hello’, 11)
b請求中 get(‘hello’)
b請求中長連接redis上一次剛好是a請求中使用後, get(‘hello’) 返回的是 第2個庫的鍵值對,而不是默認選擇0庫中的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/231790.html