当前位置:首页 » 云服务器 » 为什么redis分布式必须三台服务器

为什么redis分布式必须三台服务器

发布时间: 2025-07-20 23:58:34

① redis 的一主二从三哨兵模式

Redis一主二从三哨兵模式是一种高可用性的部署策略,旨在保障Redis在宕机时仍然可提供服务。通过配置一台主服务器以及两台从服务器,并部署三台哨兵实例,系统能够在主服务器故障时,自动将从服务器提升为主服务器,确保服务的连续性。


配置方案如下:



  • 主服务器IP地址:127.0.0.1 6001


  • 两台从服务器IP地址:127.0.0.1 6002 和 127.0.0.1 6003


  • 三台哨兵服务器IP地址:127.0.0.1 16001, 127.0.0.1 16002, 127.0.0.1 16003



配置文件修改涉及:



  • 将`redis.conf`复制为`redis1.conf`和`redis2.conf`

  • 编辑`redis.conf`文件,进行如下配置:


    • `bind 192.168.1.88 127.0.0.1`

    • `protected-mode no`

    • `daemonize yes`

    • `port 6001`

    • `pidfile "/var/run/redis_6001.pid"`


  • 编辑`redis1.conf`和`redis2.conf`文件,分别进行如下配置:


    • `bind 192.168.1.88 127.0.0.1`

    • `protected-mode no`

    • `daemonize yes`

    • `port 6002` 或 `6003`

    • `pidfile "/var/run/redis_6002.pid" 或 "/var/run/redis_6003.pid"`

    • `slaveof 127.0.0.1 6001`


  • 编辑哨兵配置文件,包括`sentinel.conf`、`sentinel1.conf`和`sentinel2.conf`,进行如下配置:


    • `port 16001`

    • `daemonize yes`

    • `sentinel monitor mymaster 127.0.0.1 6001 2`


  • 修改哨兵配置文件,分别进行如下配置:


    • `port 16002` 或 `16003`

    • `sentinel monitor mymaster 127.0.0.1 6001 2`



启动服务:



  • 使用`./bin/redis-server`命令启动`redis.conf`、`redis1.conf`和`redis2.conf`文件。

  • 使用`./bin/redis-sentinel`命令启动哨兵服务。


验证配置:



  • 通过命令`./bin/redis-cli -p 16001`连接哨兵,运行`sentinel master mymaster`以验证主从状态。

  • 手动关闭主服务器,观察从服务器是否能升级为主服务器。

  • 测试数据设置与获取,确认从服务器间的数据同步。


哨兵的作用包括:



  • 状态监控:监控主服务器状态。


  • 故障转移:主服务器异常时,自动提升从服务器为新主服务器。


  • 配置调整:主从切换后,相关配置文件(如`redis.conf`、`redis1.conf`和`redis2.conf`以及`sentinel.conf`)自动更新。



学习资源:



  • Redis Sentinel官方文档

  • Redis哨兵机制原理及配置

② 濡备綍浣跨敤redis瀹炵幇鍒嗗竷寮忛挛锷熻兘锛

鐢变簬redis鏄鍗旷嚎绋嬬殑涓旀ц兘寰埚揩锛屾墍浠ユ瘆杈冮傚悎锅氩叏灞鍒嗗竷寮忛挛銆

锘烘湰娴佺▼灏辨槸鍦ㄦ搷浣滃彲鑳芥煇涓鍏ㄥ眬鍐茬獊璧勬簮镄勬椂鍊欙纴浣跨敤涓涓鍏ㄥ眬鍞涓key𨱒ュ垽鏂鏄钖︽湁鍏朵粬绾跨▼鍗犵敤浜呜祫婧愶纴濡傛灉链夊叾浠栫嚎绋嫔崰鐢锛屽垯鎶ラ敊阃鍑烘垨钥呭惊鐜绛夊緟銆傚傛灉娌℃湁鍏朵粬绾跨▼鍗犵敤锛屽垯灏卞彲浠ラ氲繃娣诲姞鍒嗗竷寮忛挛𨱒ュ崰鐢ㄨ繖涓璧勬簮锛岀劧钖庡啀镓ц屽悗缁镄勪换锷★纴鍦ㄤ换锷℃墽琛屽畬鎴愪箣钖庯纴鍐嶉喷鏀惧垎甯冨纺阌侊纴鍏朵粬绾跨▼灏卞彲浠ョ户缁浣跨敤杩欎釜璧勬簮浜嗐

闾d箞阃氲繃redis锷犻挛镄勫姩浣沧槸浠涔埚憿锛

绠鍗曞姞阌佸懡浠わ细
锻戒护鏄锛歴etnx

鍐呴儴镄勫疄鐜版満鍒跺氨鏄鍒ゆ柇杩欎釜key浣岖疆鏄涓嶆槸链夋暟鎹锛屾病链夋暟鎹灏辫剧疆鎴恦alue杩斿洖锛屾湁鏁版嵁灏辫繑锲炰竴涓鐗规畩鏁板笺

浣嗘槸杩欓噷链変竴涓闂棰樻槸锛屽傛灉鍗犵敤璧勬簮镄勭嚎绋嬮敊璇阃鍑轰简锛屾病链夋潵寰楀强閲婃斁鍒嗗竷寮忛挛锛岃繖涓阌佸氨琚姘歌繙镄勫崰鐢ㄤ简

鏀硅繘鐗堢殑锷犻挛锛
锻戒护鏄锛1. setnx 2. expire

娣诲姞鍒嗗竷寮忛挛镄勫悓镞讹纴娣诲姞涓涓阌侀挛杩囨湡镄勬椂闂淬傝繖镙凤纴褰揿姞阌佺嚎绋嬮鍑轰箣钖庯纴镊冲皯绛変竴娈垫椂闂翠箣钖庯纴阌佹槸链夋満浼氶喷鏀炬帀镄勚

杩欓噷链変竴涓灏忛梾棰樻槸锛岃繖涓や釜锻戒护鏄鍒嗗紑镓ц岀殑锛屼笉鏄铡熷瓙镎崭綔銆傞偅涔埚氨瀛桦湪鐞呜轰笂𨱒ヨ达纴绗涓涓锻戒护镓ц屽畬涔嫔悗锛屽氨鍑虹幇阌栾锛屾潵涓嶅强镓ц宔xpire锻戒护镄勫彲鑳斤纴涓绉嶅姙娉曟槸镊宸卞啓lua鑴氭湰锛屽彲浠ュ疄鐜板氭浔锻戒护镄勫师瀛愬寲镓ц屻备竴绉嶅姙娉曟槸寮旷敤涓浜涘紑婧愬簱銆傚湪2.8鐗堟湰涔嫔悗锛宺edis涓轰简瑙e喅杩欎釜闂棰桡纴鎻愪緵浜嗗畼鏂圭増镄勮В娉曪纴灏辨槸锻戒护锛歴et key value nx expireTimeNum ex锛屽皢涓婅堪涓や釜锻戒护钖埚苟鎴愪简涓涓锻戒护銆

链変简杩囨湡镞堕棿涔嫔悗瑙e喅浜嗕竴閮ㄥ垎闂棰桡纴浣嗘槸涔熸湁鍙鑳藉嚭鐜伴挛閮借繃链熶简锛屼絾鏄涓闂存墽琛岀殑浠诲姟杩樻病链夌粨𨱒燂纴绗涓涓绾跨▼杩桦湪镓ц屼简锛岀浜屼釜绾跨▼宸茬粡𨰾垮埌阌佸紑濮嬫墽琛屼简锛岄偅涔堣繖镞跺欑涓涓绾跨▼濡傛灉镓ц屽畬鎴愪箣钖庯纴闾d箞灏变细灏嗙浜屼釜绾跨▼镄勯挛閲婃斁鎺変简銆傜浜屼釜绾跨▼閲婃斁阌佺殑镞跺欙纴瑕佷笉铹跺嚭阌欙纴瑕佷笉铹舵槸閲婃斁镄勫叾浠栫嚎绋嬬殑阌侊纴杩欐牱涔熶细鍜岄勬湡涓岖︺

濡傛灉鍗旷函鍦拌佽В鍐宠繖涓闂棰樼殑璇濓纴鍙浠ュ湪璁剧疆value镄勬椂鍊欎娇鐢ㄤ竴涓闅忔満鏁帮纴閲婃斁阌佺殑镞跺欙纴鍏埚垽鏂杩欎釜闅忔満鏁版槸钖︿竴镊达纴濡傛灉涓镊村啀鍒犻櫎阌侊纴钖﹀垯灏遍鍑恒备絾鏄鍒ゆ柇value鍜屽垹闄key涔熶笉鏄涓涓铡熷瓙镎崭綔锛岃繖镞跺椤氨闇瑕佷娇鐢╨ua鑴氭湰浜嗐

涓婇溃镄勬柟妗堜緷铹朵笉鑳借В鍐宠秴镞堕喷鏀剧殑闂棰桡纴渚濈劧杩濊儗鍒嗗竷寮忛挛镄勫埯琛枫傛庝箞锷炰简锛

瑙i樻濊矾鏄鍙﹀栧惎锷ㄤ竴涓绾跨▼锛屽畠镄勪换锷″氨鏄姣忛殧涓娈垫椂闂村垽鏂涓涓嫔傛灉鍙戠幇褰揿墠绾跨▼镄勪换锷″揩杩囨湡浜呜缮娌℃湁瀹屾垚锛屽垯瀹氭湡缁椤綋鍓岖嚎绋嬬殑阌佺画涓链熴

链変釜寮婧愬簱瑙e喅浜呜繖涓闂棰桡纴瀹冨ぇ姒傜巼浼氭瘆浣犲疄鐜板缑镟村ソ涓浜涖傝繖涓搴揿氨鏄痳edisson锛岄潪甯稿ソ璁帮纴灏辨槸redis镄勫効瀛恠on锛岃繛璧锋潵灏辨槸reidsson锛岃槠铹跺彲鑳戒笉鏄浜茬殑锛屼絾鏄涔熻冻澶熶简銆

杩欎釜搴挞噷闱㈡湁涓涓缁勪欢鏄痺atchdog锛岀洿璇戣繃𨱒ュ氨鏄鐪嬮棬镫楋纴瀹幂殑浣灭敤灏辨槸姣忛殧涓娈垫椂闂村垽鏂镄勚

鍐岖户缁镐濊冿纴杩樻湁涓涓镟存瀬绔镄勯梾棰樻槸锛宺edis濡傛灉鏄鍗曡妭镣圭殑锛屽畠瀹曟満浜嗭绂鎴栬呮槸涓诲囱妭镣圭殑锛屼絾鏄澶囦唤鑺傜偣杩樻病链夋潵寰楀强钖屾ヤ富鑺傜偣镄勬暟鎹锛屼富鑺傜偣𨰾垮埌阌佷箣钖庯纴鍦ㄥ悓姝ユ暟鎹涔嫔墠灏遍┈涓婂畷链轰简锛屽垯涔熸湁鍙鑳藉嚭鐜伴挛涓崭綇镄勯梾棰樸傚傛灉璁や负杩欐槸涓涓闂棰桡纴𨱍宠佽В鍐宠繖涓闂棰桡纴杩欎釜闂棰樻庝箞瑙e喅浜嗭纻

镐濊矾鏄鍦ㄥ姞阌佺殑镞跺椤氩姞阌佸嚑鍙皉edis链嶅姟鍣锛岄氩父𨱍呭喌涓媟edis閮ㄧ讲镄勬椂鍊欐槸2n+1鍙帮纴闾d箞鍦ㄥ姞阌佺殑镞跺欓渶瑕佷缭璇佽繃鍗婃暟链嶅姟鍣ㄥ姞阌佹垚锷熶简锛屼篃灏辨槸璇磏+1鍙版湇锷″櫒銆傝繖镞跺欓櫎闱炴暣涓闆嗙兢閮戒笉鍙鐢ㄤ简锛屽垯杩欎釜瀹夊叏镐у皢澶у箙搴︽彁鍗囥

杩欎釜闂棰树篃链夊紑婧愬簱瑙e喅浜嗭纴灏辨槸redis绾㈤挛銆

涓嬩竴涓闂棰樻槸鍒嗗竷寮忛挛鍙浠ラ吨鍏ヤ箞锛

濡傛灉𨱍宠佸疄鐜板彲閲嶅叆镄勫垎甯冨纺阌佺殑璇濓纴闇瑕佸湪璁剧疆value镄勬椂鍊椤姞涓婄嚎绋嬩俊鎭鍜屽姞阌佹℃暟镄勪俊鎭銆备絾鏄杩欐槸绠鍗旷殑镐濊矾锛屽傛灉锷犱笂杩囨湡镞堕棿绛夐梾棰树箣钖庯纴鍙閲嶅叆阌佸氨鍙鑳芥瘆杈冨嶆潅浜嗐

③ redis实例是什么意思

Redis实例是指在一台或多台服务器上运行的一个或多个Redis进程的实例。以下是关于Redis实例的详细解释:

  • 独立性:每个Redis实例都是独立的,它们之间不共享任何数据。这意味着在一个Redis实例中存储的数据,在另一个Redis实例中是无法访问的。

  • 创建方式:Redis实例的创建可以通过在单个物理服务器上启动多个进程,或者在多个分布式服务器上运行Redis进程来实现。这种方式使得Redis可以根据需求进行扩展,以适应不同的应用场景。

  • 类型:Redis实例分为主节点从节点两种类型。主节点是Redis实例的控制节点,负责接收来自客户端的请求,并将这些请求转发给Redis集群中的各个节点。而从节点则是一种只读节点,它从主节点中复制数据,以增加Redis的可用性和解决主节点负载压力等问题。

  • 部署与配置:在Redis集群中,Redis实例的部署和配置非常重要。为了保证Redis实例的高可用性、性能和安全性,需要设置适当的Redis参数和调整系统资源的使用。例如,设置TCP KeepAlive可以避免长时间未使用的Redis实例导致的连接问题;启用密码验证、TLS或其他数据加密机制可以保护Redis数据的安全。

  • 重要性:合理的Redis实例配置是保证Redis服务能够高效稳定地运行的关键。因此,在创建和配置Redis实例时,需要充分考虑实例的数量、对象大小、内存容量、网络带宽等因素,以确保Redis能够满足应用的需求。

热点内容
c语言原码 发布:2025-07-21 04:45:36 浏览:493
编译android的工具叫什么 发布:2025-07-21 04:34:29 浏览:832
怎么使用公网ip开mc服务器 发布:2025-07-21 04:32:59 浏览:777
app云服务器 发布:2025-07-21 04:32:59 浏览:205
为什么安卓连接不了车 发布:2025-07-21 04:23:33 浏览:731
国内存储厂商有哪些 发布:2025-07-21 04:15:38 浏览:278
以太网控制器如何配置 发布:2025-07-21 04:15:38 浏览:632
矿大算法 发布:2025-07-21 04:14:03 浏览:119
计算机中访问速度最快的存储器是 发布:2025-07-21 04:12:35 浏览:331
安卓怎么登陆instagram 发布:2025-07-21 04:10:54 浏览:373