① redis怎麼在config.php 中設置參數
1. Redis默認不是以守護進程的方式運行,可以通過該配置項修改,使用yes啟用守護進程
daemonize no
2. 當Redis以守護進程方式運行時,Redis默認會把pid寫入/var/run/redis.pid文件,可以通過pidfile指定
pidfile /var/run/redis.pid
3. 指定Redis監聽埠,默認埠為6379,作者在自己的一篇博文中解釋了為什麼選用6379作為默認埠,因為6379在手機按鍵上MERZ對應的號碼,而MERZ取自義大利歌女Alessia Merz的名字
port 6379
4. 綁定的主機地址
bind 127.0.0.1
5.當 客戶端閑置多長時間後關閉連接,如果指定為0,表示關閉該功能
timeout 300
6. 指定日誌記錄級別,Redis總共支持四個級別:debug、verbose、notice、warning,默認為verbose
loglevel verbose
② redis為什麼需要watch
不知道你說的watch是啥意思,php操作redis很簡單的,舉個例子:
<?php
//連接本地的 Redis 服務
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//設置 redis 字元串數據
$redis->set("tutorial-name", "Redis tutorial");
// 獲取存儲的數據並輸出
echo "Stored string in redis:: " . $redis->get("tutorial-name");
?>
這是操作字元串的,還有操作其他redis數據類型的。
要成功先確保你php有裝redis擴展,並且本地redis服務正常跑著的。
如果沒有解決你的問題的話,麻煩你解釋一下問題吧,你看都沒人回你,因為你問題不清楚啊。
如果解決了,就請採納吧。
③ php 怎麼給redis加查詢鎖
能不能加鎖這個不知道,但是可以用監控watch 和事務結合起來用。因為watch的功能就是當它監控一個鍵的時候,如果這個鍵被修改了,那麼它後面的事務就不會執行。
比如:
set key 1;
watch key
set key 2
mulit
set key 3
exec
get key =>'2' //key在watch後被修改了,所以後面的事務沒有執行
④ php 後台怎麼開一個進程監聽Redis的隊列消息呢用while
redis的subscribe用pconnect鏈接,執行這個腳本的進程會自動監聽所訂閱的頻道發送的消息
ini_set(『default_socket_timeout』, -1);
$redis = new \Redis();
$redis->pconnect('127.0.0.1', 6379);
//訂閱
$redis->subscribe(['msg'], 'callfun');
function callfun($redis, $channel, $msg)
{
var_mp([
'redis' => $redis,
'channel' => $channel,
'msg' => $msg
]);
}
⑤ zabbix,redis,nginx三者有什麼關系,分別同做什麼語言的伺服器例如:php等,最近被這三個東西搞得很暈
zabbix:是一套伺服器性能監控軟體,這個沒怎麼用過,沒有發言權。
redis:你可以當成是資料庫,和MYSQL差不多(實際上差很多)
nginx:是一個web 伺服器,提供網頁服務(如果它壞了,用戶輸入域名就不能正常訪問網站)
memcached:基於內存的分布式緩存系統,是redis的長江前浪。
這幾個東西和PHP都沒關系,但可以這樣理解:
nginx 可以做php的WEB伺服器
redis 可以做php的資料庫或緩存
memcached 可以做PHP的緩存
zabbix 既然能監控伺服器性能,能把他們全都監控起來?
⑥ php 在什麼情況下使用redis中的哈希類型
通過sentinel來獲取redis的可用master ip來創建連接池連接,這里有一個很坑的地方,若sentinel和redis node部署在同一台伺服器,sentinel監控的master ip不能寫成127.0.0.1,需要寫成真實IP。
sentinel在對外管理MASTER IP時,只是簡單的將配置文件中的IP保存,而不會在對外提供服務時,動態轉換為127.0.0.1所在機器的真實IP。
⑦ php使用redis的有序集合zset實現延遲隊列
延遲隊列就是個帶延遲功能的消息隊列,相對於普通隊列,它可以在指定時間消費掉消息。
我們通過redis的有序集合zset來實現簡單的延遲隊列,將消息數據序列化,作為zset的value,把消息處理時間作為score,每次通過zRangeByScore獲取一條消息進行處理。
然後,我們寫一個php腳本,用來處理隊列中的任務。