1. 程式人生 > 其它 >第二章 高併發必備技術+新版分散式快取Redis6安裝

第二章 高併發必備技術+新版分散式快取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伺服器購買和常用軟體介紹

  • 注意:誰都不能保證每個人-硬體組成-系統版本-虛擬機器軟體版本都一樣

    • 出現問題,大家結合報錯日誌搜尋博文解決
    • 少數同學 -Win7、Win8、Win10、Mac、虛擬機器等等,可能存在相容問題
  • 選購實操
  • 可以嘗試自己通過百度進行找文件, 安裝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就是可以快速部署啟動應用
實現虛擬化,完整資源隔離,一次編寫,四處執行
但有一定的限制,比如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;