第二章 高併發必備技術+新版分散式快取Redis6安裝
第1集 高併發的必備兩大“核技術”佇列和快取
簡介:高併發的必備兩大“核技術”佇列和快取介紹
-
什麼是佇列(MQ訊息中介軟體)
-
全稱MessageQueue,主要是用於程式和程式直接通訊,非同步+解耦
-
使用場景:
-
核心應用
- 解耦:訂單系統-》物流系統
- 非同步:使用者註冊-》傳送郵件,初始化資訊
- 削峰:秒殺、日誌處理
-
-
-
什麼是快取
- 程式經常要呼叫的物件存在記憶體中,方便其使用時可以快 速呼叫,不必去資料庫或者其他持久化裝置中查詢
- 主要 就是提高效能 DNS快取、前端快取、代理伺服器快取Nginx、應用程式快取、資料庫快取
第2集 本地快取和分散式快取介紹+熱點key的解決方案
簡介:介紹本地快取和分散式快取
-
分散式快取
- 與應用分離的快取元件或服務,與本地應用隔離一個獨 立的應用,多個應用可直接的共享快取
- 常⻅的分散式快取 Redis、Memcached等
-
本地快取
-
和業務程式一起的快取,例如myabtis的一級或者二級 快取,本地快取自然是最快的,但是不能在多個節點共 享
-
常⻅的本地快取
- ssm基礎課程myabtis 一級快取、 mybatis二級快取;
- 框架本身的快取;
- redis本地單機服 務;
- ehchche
- guava cache
- Caffeine
-
-
選擇本地快取和分散式快取
-
和業務資料結合去選擇 高併發專案裡面一般都是有本地快取和分散式快取共同 存在的
-
熱點key的解決方案之一:避免頻寬或者傳輸影響,本地快取熱點key資料,對於每次讀請求,將首先檢查key是否存在於本地快取中,如果存在則直接返回,如果不存在再去訪問分散式快取的機器
- 快取中的某些Key對應的value儲存在叢集中一臺機器,使得所有流量湧向同一機器,成為系統的瓶頸,無法通過增加機器容量來解決
- 熱賣商品、熱點新聞、熱點評論、大V明星結婚
-
第3集 什麼是NosQL和Redis快速介紹
簡介:Nosql介紹和Reidis介紹
-
什麼是Redis
-
屬於NoSQL的一種 ( Not Only SQL )
- 是不同於傳統的關係資料庫的資料庫管理系統的統稱
- 其兩者最重要的區別是NoSQL不使用SQL作為查詢語言。
- NoSQL資料儲存可以不需要固定的表格模式
- 鍵 - 值對儲存,列儲存,文件儲存,圖形資料庫
- NoSql:redis、memcached、mongodb、Hbase
-
官網地址:https://redis.io/
-
一個開源的使用 ANSI C 語言編寫、遵守 BSD 協議、支援網路、可基於記憶體、分散式、可選永續性的鍵值對(Key-Value)儲存資料庫,並提供多種語言的 API
-
高效能:Redis能讀的速度是110000次/s,寫的速度是81000次/s
-
記憶體中的資料結構儲存系統,它可以用作資料庫、快取和訊息中介軟體。 它支援多 種類型的資料結構,如 字串(strings)、雜湊(hashes)、 列表(lists)、 集合(sets)、 有序集合(sorted sets)等
-
-
誰在使用Redis
-
國外: Google、Facebook、亞馬遜
-
國內:阿里、騰訊、位元組、百度
- 大廠們都有一個習慣:基於Redis二次開發,比如阿里Tair
-
-
高階工程師崗位面試都喜歡問Redis
- 特性:aof/rdb、高效能原因、key設計、熱點key、淘汰演算法
- 功能實現:排行榜、購物車、社交關係(粉絲、關注)、Feed流、附近的商家、分散式鎖等等
第4集 阿里雲Linux伺服器選擇和常用軟體介紹
簡介:阿里雲Linux伺服器購買和常用軟體介紹
-
雲廠商
-
阿里雲新使用者地址(如果地址失效,聯絡我或者客服即可,1折)
-
環境問題說明
-
務必使用CentOS 7 以上版本,64位系統,不要在Windows系統操作!!!!
-
儘量前面先使用阿里雲部署
-
大家本地用虛擬機器記得也要CentOS 7.x系統
-
vmware
-
-
-
注意:誰都不能保證每個人-硬體組成-系統版本-虛擬機器軟體版本都一樣
- 出現問題,大家結合報錯日誌搜尋博文解決
- 少數同學 -Win7、Win8、Win10、Mac、虛擬機器等等,可能存在相容問題
- 選購實操
-
windows工具 putty,xshell, security CRT
-
蘋果系統MAC : 通過終端登入
- ssh root@ip 回車後輸入密碼
- ssh [email protected]
-
linux圖形操作工具(用於遠端連線上傳檔案)
-
mac: filezilla
- sftp://120.24.216.117
-
windows: winscp
-
參考資料:https://jingyan.baidu.com/article/ed2a5d1f346fd409f6be179a.html
-
- 可以嘗試自己通過百度進行找文件, 安裝mysql jdk nginx maven git redis等,也可以看我們的課程 xdclass.net
第5集 Linux伺服器原始碼安裝Redis6和相關依賴
簡介:Linux伺服器原始碼安裝Redis6和相關依賴
- 原始碼安裝Redis-上傳到Linux服務(安裝包在本章本集資料裡面, 先安裝升級gcc再編譯,不然會有問題)
#安裝gcc
yum install -y gcc-c++ autoconf automake
#centos7 預設的 gcc 預設是4.8.5,版本小於 5.3 無法編譯,需要先安裝gcc新版才能編譯
gcc -v
#升級新版gcc,配置永久生效
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
#編譯redis
cd redis
make
#安裝到指定目錄
mkdir -p /usr/local/redis
make PREFIX=/usr/local/redis install
-
安裝編譯redis6需要升級gcc,預設自帶的gcc版本比較老
-
目錄介紹
- 配置檔案
- redis-server
- redis-cli
- 指定配置檔案
第6集 Linux伺服器Docker安裝+容器化部署Redis6
簡介:Linux伺服器Docker安裝+容器化部署Redis6
- 如果沒Docker基礎,建議是學習專題視訊,這個公司用的很多*https://xdclass.net/#/coursedetail?video_id=45* 連結失效的話,聯絡客服小姐姐
雲端計算+容器化是當下的主流,也是未來的趨勢, docker就是可以快速部署啟動應用
實現虛擬化,完整資源隔離,一次編寫,四處執行
但有一定的限制,比如Docker是基於Linux 64bit的,無法在32bit的linux/Windows/unix環境下使用
* Docker安裝
安裝並執行Docker。
yum install docker-io -y
systemctl start docker
檢查安裝結果。
docker info
啟動使用Docker
systemctl start docker #執行Docker守護程序
systemctl stop docker #停止Docker守護程序
systemctl restart docker #重啟Docker守護程序
docker ps檢視容器
docker stop 容器id
修改映象倉庫
vim /etc/docker/daemon.json
#改為下面內容,然後重啟docker
{
"debug":true,"experimental":true,
"registry-mirrors":["https://pb5bklzr.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
}
#檢視資訊
docker info
- docker部署redis 並配置密碼
如果訪問不了,記得看防火牆/網路安全組埠是否開放
原始碼安裝redis的話預設不能遠端訪問 docker安裝redis可以遠端訪問
docker run -itd --name xdclass-redis -p 6379:6379 redis --requirepass 123456
-i 以互動模式執行容器,通常與
-t 同時使用;
-d 後臺執行容器,並返回容器ID;