主頁 > 資料庫 > 從0到1搭建redis6.0.7

從0到1搭建redis6.0.7

2022-11-09 09:36:22 資料庫

redis集群搭建

一、安裝redis

原始碼安裝:

1.下載原始碼包:

wget http://download.redis.io/releases/redis-6.0.7.tar.gz

2.解壓到指定目錄下:

tar xf redis-6.0.7.tar.gz -C /usr/local/

二、編譯安裝

下載編譯安裝Redis的依賴,因為Redis是C語言撰寫的,所以主要安裝C的編譯環境

yum install gcc g++ gcc-c++ make -y

進入redis檔案夾進行編譯安裝

cd /usr/local/redis-6.0.7
# 開始編譯
make -j 2

編譯安裝程序中出現大量錯誤如下圖所示:
image
這是因為安裝6版本的Redis需要5.3以上版本的gcc,而先前YUM安裝的gcc默認安裝的是4.8.5版本,

# 查看gcc版本
gcc -v
顯示gcc版本為4.8.5,需要升級gcc

升級gcc到9版本

yum install centos-release-scl -y
yum install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils -y

然后啟用gcc 9,我看到有些博客中寫到啟用gcc9的方法如下

# 臨時啟用gcc 9
scl enable devtoolset-9 bash

# 長期啟用gcc 9
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile

#使配置生效
source /etc/profile

這種臨時啟用的方法發現單獨在終端執行沒有問題,不過把它寫到腳本里執行的時候,執行到這一句就會退出腳本,所以在腳本中我直接使用source /opt/rh/devtoolset-9/enable臨時啟用gcc 9,

執行完畢后gcc升級到9.3.1版本

image
升級好gcc后重新編譯

# 清除之前編譯的可執行檔案及組態檔,
make clean

make -j 2

make install

三、啟動Redis

在redis的src目錄下執行./redis-server,出現如下界面說明Redis算是裝好了,不過有幾個警告需要處理一下,解決的方法在警告資訊中已經給出了,

#啟動redis服務
[root@mysql_master src]# ./redis-server

#解決警告資訊
# 第一個警告的解決方法
echo net.core.somaxconn=511 >> /etc/sysctl.conf

# 第二個警告的解決方法
echo vm.overcommit_memory=1 >> /etc/sysctl.conf
# 使/etc/sysctl.conf生效
sysctl -p

# 第三個警告的解決方法
echo never > /sys/kernel/mm/transparent_hugepage/enabled

#之后再重新執行./redis-server,可以看到,警告資訊消失了,Redis服務順利啟動,

此時Redis服務在前臺執行,修改Redis的組態檔,讓Redis服務可以在后臺運行

vim /usr/local/redis-6.0.7/redis.conf

將daemonize no改為daemonize yes,然后使用組態檔重新啟動redis
關閉加密保護,修改資料存盤路徑.......
#redis已成功在后臺啟動
[root@mysql_master redis-6.0.7]# ./src/redis-server redis.conf
#測驗redis是否正常作業
[root@mysql_master redis-6.0.7]# ./src/redis-cli 
[root@mysql_master src]# ./redis-cli
127.0.0.1:6379> ping
PONG

后臺啟動:
image

四、配置主從

啟動主結點的redis服務

[root@mysql_master redis-6.0.7]# ./src/redis-server redis.conf

修改兩臺從結點的redis.conf組態檔,指定主節點ip和埠

注意:redis6版本和redis4版本配置主從的名稱不一樣

replicaof 192.168.232.11 6379 主ip+主埠
image
修改完后啟動兩臺從的redis,讀取redis.conf才能生效

[root@mysql_slave1 redis-6.0.7]# ./src/redis-server redis.conf

五、redis-sentinel---哨兵模式

部署Sentinel:

#查看sentinel.conf里面配置資訊
[root@mysql_master redis-6.0.7]# grep -Ev "^$|#" sentinel.conf
三臺都要配置,具體內容如下所示,可以刪完然后復制上去
###############################################################
port 26379
daemonize yes   #后臺啟動 
pidfile /var/run/redis-sentinel.pid
logfile "/var/log/redis/sentinel.log"
sentinel announce-ip 0.0.0.0
dir /tmp
sentinel monitor mymaster 192.168.232.11 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 60000
sentinel deny-scripts-reconfig yes
##############################################################

注意:一定要開啟后臺啟動,否則Ctrl+c退出,sentinel會自動關閉

image
啟動,三臺都要啟動

讀取sentinel組態檔,三臺都一樣啟動
[root@mysql_master redis-6.0.7]# ./src/redis-sentinel sentinel.conf 

查看行程是否啟動:
[root@mysql_master redis-6.0.7]# ps -ef | grep redis-sentinel

image
sentinel操作

[root@mysql_master redis-6.0.7]# ./src/redis-sentinel sentinel.conf 
[root@mysql_master redis-6.0.7]# ./src/redis-cli -p 26379
127.0.0.1:26379> sentinel master mymaster
1) "name"
 2) "mymaster"
 3) "ip"
 4) "192.168.232.11"
 5) "port"
 6) "6379"
 7) "runid"
 8) "4e5793b30c65c08c1f784a045dbb81f8a327414f"
 9) "flags"
10) "master"
127.0.0.1:26379> sentinel slaves mymaster
1)  1) "name"
    2) "192.168.232.12:6379"
    3) "ip"
    4) "192.168.232.12"
    5) "port"
    6) "6379"
    7) "runid"
    8) "7172974215efed734fd000bcd9fcc340dd8796ae"
    9) "flags"
   10) "slave"
   11) "link-pending-commands"
2)  1) "name"
    2) "192.168.232.20:6379"
    3) "ip"
    4) "192.168.232.20"
    5) "port"
    6) "6379"
    7) "runid"
    8) "9a4f10acbd6c339df8930a1478455ecaffc8c5ca"
    9) "flags"
   10) "slave"

六、redis cluster集群搭建

環境準備

1.準備三機器,關閉防火墻和selinux
2.制作決議并相互做決議,即三臺互相ping通,主機名可改可不改,
注:規劃架構兩種方案,一種是單機多實體,這里我們采用多機器部署:
三臺機器,每臺機器上面兩個redis實體,一個master一個slave,第一列做主庫,第二
列做備庫
#記得選出控制節點
redis-cluster01 192.168.232.11 7000、7001
redis-cluster02 192.168.232.12 7002、7003
redis-cluster03 192.168.232.20 7004、7005

安裝redis 并配置redis-cluster

1、redis安裝 ,注意3臺機器都需要安裝redis 服務

創建實體目錄

#先裝一個工具tree
yum install tree

#創建節點目錄:按照規劃在每臺redis節點的安裝目錄中創建對應的目錄(以埠號命名)
#具體創建程序不再描述
查看目錄結構(六臺)
[root@mysql_master src]# cd /redis
[root@mysql_master redis]# tree
.
└── cluster
    ├── 7000
    │   ├── conf
    │   │   ├── nodes.conf
    │   │   └── redis.conf
    │   ├── data
    │   │   ├── appendonly.aof
    │   │   └── dump.rdb
    │   ├── log
    │   │   └── redis.log
    │   └── redis.pid
    └── 7001
        ├── conf
        │   ├── nodes.conf
        │   └── redis.conf
        ├── data
        │   ├── appendonly.aof
        │   └── dump.rdb
        ├── log
        │   └── redis.log
        └── redis.pid
#其他五臺除了名字不一樣,組態檔不一樣,其他都一樣

配置官方組態檔,去掉#開頭的和空格行

#cat redis.conf | grep -v ^# | grep -v ^$

修改組態檔

[root@mysql_master redis]# cd cluster/7000/conf
[root@mysql_master conf]# cat redis.conf 
bind 0.0.0.0
protected-mode no
port 7000
daemonize yes
dir /redis/cluster/7000/data
cluster-enabled yes
cluster-config-file /redis/cluster/7000/conf/nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes
pidfile /redis/cluster/7000/redis.pid
logfile /redis/cluster/7000/log/redis.log
#其他五臺修改一下目錄

創建集群

注意:創建集群:在其中一個節點操作就可以

redis節點搭建起來后,需要完成redis cluster集群搭建,搭建集群程序中,需要保證6個redis實體都是運行狀態

Redis是根據IP和Port的順序,確定master和slave的,所以要排好序,再執行,
引數:
--cluster-replicas 1:表示為集群中的每個主節點創建一個從節點.書寫流程:主節點
ip+port 對應一個從節點ip+port(正常是前面三個節點為主節點,后面的為從節點)

#先把六臺redis啟動起來再啟動集群
[root@mysql_master src]# ./redis-server /redis/cluster/7000/conf/redis.conf 
[root@mysql_master src]# ./redis-server /redis/cluster/7001/conf/redis.conf
[root@mysql_master src]# ./redis-cli --cluster create --cluster-replicas 1 192.168.232.11:7000 192.168.232.11:7001 192.168.232.12:7002 192.168.232.12:7003 192.168.232.20:7004 192.168.232.20:7005

....................
輸入yes,等待集群創建
出現以下資訊證明創建成功
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

image
查看是否切換成集群模式

[root@mysql_master conf]# ps -ef | grep redis

image

七、redis cluster 向客戶端擴展

轉載請注明出處,未完待續...

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/530035.html

標籤:MySQL

上一篇:更新動態框架將如何影響AppStore構建

下一篇:過濾嵌套的結構陣列并快速回傳子物件

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more