国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 后端開發(fā) php教程 redis集群的實現(xiàn)及使用php進行調(diào)用

redis集群的實現(xiàn)及使用php進行調(diào)用

Apr 26, 2018 pm 02:43 PM
php redis 進行

本次的文章介紹的是關(guān)于redis集群的實現(xiàn)及使用php進行調(diào)用,給大家分享一下,有需要的朋友可以參考一下

一、搭建redis集群
1.概念解釋
redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用無中心結(jié)構(gòu),每個節(jié)點保存數(shù)據(jù)和整個集群狀態(tài),每個節(jié)點都和其他所有節(jié)點連接。其redis-cluster架構(gòu)圖如下:
redis集群的實現(xiàn)及使用php進行調(diào)用
? ?其結(jié)構(gòu)特點:

?1、所有的redis節(jié)點彼此互聯(lián)(PING-PONG機制),內(nèi)部使用二進制協(xié)議優(yōu)化傳輸速度和帶寬。
?2、節(jié)點的fail是通過集群中超過半數(shù)的節(jié)點檢測失效時才生效。
?3、客戶端與redis節(jié)點直連,不需要中間proxy層.客戶端不需要連接集群所有節(jié)點,連接集群中任何一個可用節(jié)點即可。
?4、redis-cluster把所有的物理節(jié)點映射到[0-16383]slot上(不一定是平均分配),cluster?負責維護nodeslotvalue。

?5、Redis集群預(yù)分好16384個桶,當需要在?Redis?集群中放置一個?key-value?時,根據(jù)?CRC16(key)?mod?16384的值,決定將一個key放到哪個桶中。
  現(xiàn)在我們是三個主節(jié)點分別是:A, B, C 三個節(jié)點,它們可以是一臺機器上的三個端口,也可以是三臺不同的服務(wù)器。那么,采用哈希槽 (hash slot)的方式來分配16384個slot 的話,它們?nèi)齻€節(jié)點分別承擔的slot 區(qū)間是:


      節(jié)點A覆蓋0-5460;
      節(jié)點B覆蓋5461-10922;
      節(jié)點C覆蓋10923-16383.

看不懂,,,,

     獲取數(shù)據(jù):

      如果存入一個值,按照redis cluster哈希槽的算法: CRC16('key')384 = 6782。 那么就會把這個key 的存儲分配到 B 上了。同樣,當我連接(A,B,C)任何一個節(jié)點想獲取'key'這個key時,也會這樣的算法,然后內(nèi)部跳轉(zhuǎn)到B節(jié)點上獲取數(shù)據(jù)

2、Redis Cluster主從模式

redis cluster 為了保證數(shù)據(jù)的高可用性,加入了主從模式,一個主節(jié)點對應(yīng)一個或多個從節(jié)點,主節(jié)點提供數(shù)據(jù)存取,從節(jié)點則是從主節(jié)點拉取數(shù)據(jù)備份,當這個主節(jié)點掛掉后,就會有這個從節(jié)點選取一個來充當主節(jié)點,從而保證集群不會掛掉。并且如果之前的舊主節(jié)點恢復(fù)正常時。
  上面那個例子里, 集群有ABC三個主節(jié)點, 如果這3個節(jié)點都沒有加入從節(jié)點,如果B掛掉了,我們就無法訪問整個集群了。A和C的slot也無法訪問。

     所以我們在集群建立的時候,一定要為每個主節(jié)點都添加了從節(jié)點, 比如像這樣, 集群包含主節(jié)點A、B、C, 以及從節(jié)點A1、B1、C1, 那么即使B掛掉系統(tǒng)也可以繼續(xù)正確工作。

     B1節(jié)點替代了B節(jié)點,所以Redis集群將會選擇B1節(jié)點作為新的主節(jié)點,集群將會繼續(xù)正確地提供服務(wù)。 當B重新開啟后,它就會變成B1的從節(jié)點。

    不過需要注意,如果節(jié)點B和B1同時掛了,Redis集群就無法繼續(xù)正確地提供服務(wù)了。

3.redis集群的搭建

集群中至少應(yīng)該有奇數(shù)個節(jié)點,所以至少有三個節(jié)點,每個節(jié)點至少有一個備份節(jié)點,所以下面使用6節(jié)點(主節(jié)點、備份節(jié)點由redis-cluster集群確定)。

嗯,所有最少要6個redis服務(wù)。
然后啟動這6個redis服務(wù),在本機上,但要記得啟動前要進行修改配置。

port  7000                                        //端口7000,7002,7003        bind 10.93.84.53                                     //默認ip為127.0.0.1 需要改為其他節(jié)點機器可訪問的ip 否則創(chuàng)建集群時無法訪問對應(yīng)的端口,無法創(chuàng)建集群daemonize    yes                               //redis后臺運行pidfile  ./redis_7000.pid          //pidfile文件對應(yīng)7000,7001,7002cluster-enabled  yes                           //開啟集群  把注釋#去掉cluster-config-file  nodes.conf   //集群的配置  配置文件首次啟動自動生成 7000,7001,7002cluster-node-timeout  15000                //請求超時  默認15秒,可自行設(shè)置appendonly  yes                           //aof日志開啟  有需要就開啟,它會每次寫操作都記錄一條日志 

然后把redis源碼中的src目錄中的redis-trib.rb拷到當前路徑中來。
安裝ruby環(huán)境

yum install ruby  
yum install rubygems  
gem install redis-3.2.2.gem

查的一下本機6個redis的啟動情況

ps -ef | grep redis

最后我們使用redis-trib.rb來創(chuàng)建redis集群。使用create命令 –replicas 1 參數(shù)表示為每個主節(jié)點創(chuàng)建一個從節(jié)點,一對兩個,第一個為主第二個為從。

./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006

使用redis-cli進行測試,要加得加-c參數(shù),以集群方式進行連接。

redis-cli -c

要進得加-c參數(shù),代表連接的是集群方式。
至此,redis集群搭建成功。
但是我這里只是要本機測試的6個端口,真實的話最少都是要兩臺機器的。我們怎么做安全性呢?
1.修改redis.conf把bind選項改成當前的局域網(wǎng)ip
2.配置防火墻只允許另一臺的redis服務(wù)器進行訪問,當然也要允許應(yīng)用服務(wù)器的ip進行訪問吧。。。不然程序都連不上redis服務(wù),玩毛啊。。。。

//先關(guān)掉6379(redis服務(wù)使用的端口)iptables -I INPUT -p tcp --dport 6379  -j DROP 
//允許192.168.1.0這個機器進行訪問本機的6379端口iptables -I INPUT -s 192.168.1.0 -p tcp --dport 6379 -j ACCEPT

二、php中連接到redis集群
首先使用php –ri redis來查看redis擴展版本。要在3.0版本之上。
參考
第二個參數(shù)只要集群中的一個節(jié)點就行了,并不需要全填上

$obj_cluster = new RedisCluster(NULL, ['127.0.0.1:6380']);echo $obj_cluster->get('name1');

搞定

相關(guān)推薦:

php實現(xiàn)查詢mysql并緩存到redis的方法

php操作redis的命令分享


以上是redis集群的實現(xiàn)及使用php進行調(diào)用的詳細內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應(yīng)法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
PHP調(diào)用AI智能語音助手 PHP語音交互系統(tǒng)搭建 PHP調(diào)用AI智能語音助手 PHP語音交互系統(tǒng)搭建 Jul 25, 2025 pm 08:45 PM

用戶語音輸入通過前端JavaScript的MediaRecorderAPI捕獲并發(fā)送至PHP后端;2.PHP將音頻保存為臨時文件后調(diào)用STTAPI(如Google或百度語音識別)轉(zhuǎn)換為文本;3.PHP將文本發(fā)送至AI服務(wù)(如OpenAIGPT)獲取智能回復(fù);4.PHP再調(diào)用TTSAPI(如百度或Google語音合成)將回復(fù)轉(zhuǎn)為語音文件;5.PHP將語音文件流式返回前端播放,完成交互。整個流程由PHP主導(dǎo)數(shù)據(jù)流轉(zhuǎn)與錯誤處理,確保各環(huán)節(jié)無縫銜接。

如何用PHP搭建社交分享功能 PHP分享接口集成實戰(zhàn) 如何用PHP搭建社交分享功能 PHP分享接口集成實戰(zhàn) Jul 25, 2025 pm 08:51 PM

在PHP中搭建社交分享功能的核心方法是通過動態(tài)生成符合各平臺要求的分享鏈接。1.首先獲取當前頁面或指定的URL及文章信息;2.使用urlencode對參數(shù)進行編碼;3.根據(jù)各平臺協(xié)議拼接生成分享鏈接;4.在前端展示鏈接供用戶點擊分享;5.動態(tài)生成頁面OG標簽優(yōu)化分享內(nèi)容展示;6.務(wù)必對用戶輸入進行轉(zhuǎn)義以防止XSS攻擊。該方法無需復(fù)雜認證,維護成本低,適用于大多數(shù)內(nèi)容分享需求。

如何用PHP結(jié)合AI實現(xiàn)文本糾錯 PHP語法檢測與優(yōu)化 如何用PHP結(jié)合AI實現(xiàn)文本糾錯 PHP語法檢測與優(yōu)化 Jul 25, 2025 pm 08:57 PM

要實現(xiàn)PHP結(jié)合AI進行文本糾錯與語法優(yōu)化,需按以下步驟操作:1.選擇適合的AI模型或API,如百度、騰訊API或開源NLP庫;2.通過PHP的curl或Guzzle調(diào)用API并處理返回結(jié)果;3.在應(yīng)用中展示糾錯信息并允許用戶選擇是否采納;4.使用php-l和PHP_CodeSniffer進行語法檢測與代碼優(yōu)化;5.持續(xù)收集反饋并更新模型或規(guī)則以提升效果。選擇AIAPI時應(yīng)重點評估準確率、響應(yīng)速度、價格及對PHP的支持。代碼優(yōu)化應(yīng)遵循PSR規(guī)范、合理使用緩存、避免循環(huán)查詢、定期審查代碼,并借助X

PHP打造博客評論系統(tǒng)變現(xiàn) PHP評論審核與防刷策略 PHP打造博客評論系統(tǒng)變現(xiàn) PHP評論審核與防刷策略 Jul 25, 2025 pm 08:27 PM

1.評論系統(tǒng)商業(yè)價值最大化需結(jié)合原生廣告精準投放、用戶付費增值服務(wù)(如上傳圖片、評論置頂)、基于評論質(zhì)量的影響力激勵機制及合規(guī)匿名數(shù)據(jù)洞察變現(xiàn);2.審核策略應(yīng)采用前置審核 動態(tài)關(guān)鍵詞過濾 用戶舉報機制組合,輔以評論質(zhì)量評分實現(xiàn)內(nèi)容分級曝光;3.防刷需構(gòu)建多層防御:reCAPTCHAv3無感驗證、Honeypot蜜罐字段識別機器人、IP與時間戳頻率限制阻止灌水、內(nèi)容模式識別標記可疑評論,持續(xù)迭代應(yīng)對攻擊。

PHP實現(xiàn)商品庫存管理變現(xiàn) PHP庫存同步與報警機制 PHP實現(xiàn)商品庫存管理變現(xiàn) PHP庫存同步與報警機制 Jul 25, 2025 pm 08:30 PM

PHP通過數(shù)據(jù)庫事務(wù)與FORUPDATE行鎖確保庫存扣減原子性,防止高并發(fā)超賣;2.多平臺庫存一致性需依賴中心化管理與事件驅(qū)動同步,結(jié)合API/Webhook通知及消息隊列保障數(shù)據(jù)可靠傳遞;3.報警機制應(yīng)分場景設(shè)置低庫存、零/負庫存、滯銷、補貨周期和異常波動策略,并按緊急程度選擇釘釘、短信或郵件通知責任人,且報警信息需完整明確,以實現(xiàn)業(yè)務(wù)適配與快速響應(yīng)。

超越燈堆:PHP在現(xiàn)代企業(yè)體系結(jié)構(gòu)中的作用 超越燈堆:PHP在現(xiàn)代企業(yè)體系結(jié)構(gòu)中的作用 Jul 27, 2025 am 04:31 AM

PHPisstillrelevantinmodernenterpriseenvironments.1.ModernPHP(7.xand8.x)offersperformancegains,stricttyping,JITcompilation,andmodernsyntax,makingitsuitableforlarge-scaleapplications.2.PHPintegrateseffectivelyinhybridarchitectures,servingasanAPIgateway

如何用Mac搭建PHP Nginx環(huán)境 MacOS配置Nginx與PHP服務(wù)組合 如何用Mac搭建PHP Nginx環(huán)境 MacOS配置Nginx與PHP服務(wù)組合 Jul 25, 2025 pm 08:24 PM

Homebrew在Mac環(huán)境搭建中的核心作用是簡化軟件安裝與管理。1.Homebrew自動處理依賴關(guān)系,將復(fù)雜的編譯安裝流程封裝為簡單命令;2.提供統(tǒng)一的軟件包生態(tài),確保軟件安裝位置與配置標準化;3.集成服務(wù)管理功能,通過brewservices可便捷啟動、停止服務(wù);4.便于軟件升級與維護,提升系統(tǒng)安全性與功能性。

PHP中的對象關(guān)聯(lián)映射(ORM)性能調(diào)整 PHP中的對象關(guān)聯(lián)映射(ORM)性能調(diào)整 Jul 29, 2025 am 05:00 AM

避免N 1查詢問題,通過提前加載關(guān)聯(lián)數(shù)據(jù)來減少數(shù)據(jù)庫查詢次數(shù);2.僅選擇所需字段,避免加載完整實體以節(jié)省內(nèi)存和帶寬;3.合理使用緩存策略,如Doctrine的二級緩存或Redis緩存高頻查詢結(jié)果;4.優(yōu)化實體生命周期,定期調(diào)用clear()釋放內(nèi)存以防止內(nèi)存溢出;5.確保數(shù)據(jù)庫索引存在并分析生成的SQL語句以避免低效查詢;6.在無需跟蹤變更的場景下禁用自動變更跟蹤,改用數(shù)組或輕量模式提升性能。正確使用ORM需結(jié)合SQL監(jiān)控、緩存、批量處理和適當優(yōu)化,在保持開發(fā)效率的同時確保應(yīng)用性能。

See all articles