Redis基礎學習至安裝測驗(持續更新中…)
我們現在處在2021年,大資料時代!
壓力一定會越來越大,適者生存!一定要逼著自己學習,這是在這個社會生存的唯一法則!
課程目錄
- nosql講解
- 阿里巴巴結構演進
- nosql資料模型
- nosql四大分類
- CAP
- BASE
- Redis入門
- Redis安裝(windows & Linux 服務器)
- 五大基本資料型別
- String
- List
- Set
- Hash
- Zset
- 三種特殊資料型別
- geo
- hyperloglog
- bitmap
- Redis配置詳解
- Redis持久化
- RDB
- AOF
- Redis事務操作
- Redis實作訂閱發布(訊息佇列)
- Redis主從復制
- Redis哨兵模式(現在的公司中所有的集群都用哨兵模式)
- 快取穿透及解決方案
- 快取擊穿及解決方案
- 快取雪崩及解決方案
- 基礎API之Jedis詳解
- SpringBoot集成Redis操作
- Redis的實踐分析
Nosql概述
為什么要用Nosql
1.單機MySQL的年代!

90年代,一個基本的網站訪問量一版不會太大,單個資料庫完全足夠!
那個時候,更多的去使用靜態網頁Html~服務器根本沒有太大的壓力!
思考一下,這種情況下:整個網站的瓶頸是什么?
1.資料量如果太大,一個機器放不下了!
2.資料的索引(B+ tree),一個機器的記憶體也放不下
3.訪問量(讀寫混合),一個服務器承受不了~
只要你開始出現以上的三種情況之一,那么你就必須晉級!
2.Memcached(快取) + MySQL + 垂直拆分(讀寫分離)
網站80%的情況都是在讀,每次都要去查詢資料庫的話就十分麻煩! 所以說我們希望減輕資料的壓力,我們可以使用快取來保證效率!
發展程序:優化資料結構和索引–>檔案快取(IO) -->Memcached(當時最熱門的技術!)

- 分庫分表+水平拆分+MySql集群
技術和業務在發展的同時,對人的要求也越來越高了!
本質:資料庫(讀、寫)
早些年的MyISAM:表鎖,十分影響效率!高并發下就會出現嚴重的鎖問題
轉戰Innodb:行鎖
慢慢的就開始使用分庫分表的來解決寫的壓力!MySQL在那個年代推出了表磁區!但是并沒有多少公司去使用!
還推出了MySql的集群,很好的滿足那個年代的所有需求!

4.如今最近的年代
近代的技術爆炸:
2010(按鍵手機) ~ 2020 十年之間,已經發生了翻天覆地的變化;(定位,也是一種資料,音樂、熱榜!)
MySQL關系型資料庫就不夠用了,資料量很多,變化很大.
MySQL有的使用它來存盤一些比較大的檔案,博客、圖片!資料庫表很大,效率就低了!如果有一種資料庫來專門處理這種資料,MySQL壓力就變得十分小(研究如何處理這些問題!)大資料的IO壓力下,表幾乎沒法更大!
目前一個基本的互聯網專案!

為什么要用NoSQL
用戶的個人資訊,社交網路,地理位置,用戶自己產生的資料,用戶日志等等爆發式增長!
這時候我們就需要使用NoSQL資料庫的,NoSql可以很好的處理以上的情況!
什么是NoSQL
NoSQL
NoSQL = Not Only SQL(不僅僅是SQL)
關系型資料庫:表格,行,列
泛指非關系型資料庫的,隨著web2.0互聯網的誕生!傳統的關系型資料庫很難對付web2.0時代!尤其是超大規模的高并發的社區!暴露出很多難以克服的問題!NoSQL在當今大資料環境下的發展十分迅速,Redis是發展最快的,而且使我們當下必須要掌握的一個技術!
很多的資料型別用戶的個人資訊、社交網路、地理位置,這些資料型別的存盤不需要一個固定的格式!不需要多余的操作就可以橫向擴展的! Map<String,Object>使用鍵值對來控制!
NoSQL的特點
解耦!
1、方便擴展(資料之間是沒有任何關系的,很好的去擴展!)
2、大資料量高性能(Redis一秒可寫8萬次,讀11萬次;NoSQL的快取記錄級:是一種細粒度的快取,性能會比較高!)
3、資料型別是多樣型的!(不需要事前去設計資料庫!隨取隨用!如果是資料量非常大的表,很多人就無法設計了!)
4、傳統的 RDBMS(關系型資料庫管理系統;Relational Database Management System)和NoSQL(Not Only SQL)
傳統的 RDBMS
- 結構化組織
- SQL
- 資料和相互的關系都存在一個表中
- 資料操作,資料定義語言
- 嚴格的一致性
- 基礎的事務
- ......
NoSQL
- 不僅僅是資料
- 沒有固定的查詢語言
- 鍵值對存盤、列存盤、檔案存盤、圖形資料庫(社交關系)
- 最終一致性
- CAP定理 和 BASE (異地多活!)-->初級架構師! (狂神理念:只要學不死就往死里學!)
- 高性能、高可用、高可擴
- ......
了解:3V+3高
大資料時代的3V:主要是描述問題的
- 海量Volume
- 多樣Variety
- 實時Velocity
大資料時代的3高:主要是對程式的要求
- 高并發
- 高可拓
- 高性能
真正在公司中的實踐:NoSQL+RDBMS 一起使用才是最強的!
技術沒有高低之分,就看你如何去使用!(提升內功,思維的提高!)
NoSQL的四大分類
key-value鍵值對:
- 新浪:Redis
- 美團:Redis+Tair
- 阿里、百度:Redis+memecache
檔案型資料庫(bson格式 和json一樣):
- MongoDB(一般必須要掌握)
- MongoDB是一個基于分布式檔案存盤的資料庫,C++撰寫的,主要用來處理大量的檔案!
- MongoDB是一個介于關系型資料庫和非關系型資料庫中間的產品!MongoDB是非關系型資料庫中功能最豐富的,也是最像關系型資料庫的!
- ConthDB
列存盤資料庫
- HBase
- 分布式檔案系統
圖關系資料庫

他不是存圖形,放的是關系,比如:朋友圈社交網路,廣告推薦!
Neo4j、InfoGrid
四者對比

敬畏之心可以使人進步!
Redis入門
Redis概述
Redis是什么?
Redis(Remote Dictionary Server),即遠程字典服務!
是一個開源的使用ANSI ,由C語言撰寫、支持網路、可基于記憶體亦可持久化的日志型、key-Value資料庫,并提供多種語言的API;

redis會周期性的把更新的資料寫入磁盤或者把修改操作寫入追加的記錄檔案,并且在此基礎上實作了master-slave(主從)同步,
免費和開源!是當下最熱門的NoSQL技術之一!也被人們稱之為結構化資料庫!
Redis能干嘛?
1、記憶體存盤、持久化,記憶體中是斷電即失、所以說持久化很重要(rdb、aof)
2、效率高,可以用于高速快取
3、發布訂閱系統
4、地圖資訊分析
5、計時器、計數器、(瀏覽量!)
6、 …
redis的特性
- 多樣的資料型別
- 持久化
- 集群
- 事務
…
redis官網:https://redis.io/
下載地址:在官網下載即可!

注意:Windows在Github上下載(停更很久了!)
Redis推薦都是在Linux服務器上搭建的,基于Linux學習的!
Windows安裝
1.下載安裝包地址:https://github.com/microsoftarchive/redis/tags
2.下載完畢得到安裝包:

3.解壓到自己電腦的環境目錄下就可以!Redis非常的小!

4.開啟服務
雙擊redis-server開啟服務!

5.使用客戶端連接:

記住一句話,Windows下使用確實簡單,但是Redis推薦我們使用Linux去開發使用!

Linux安裝
1.下載安裝包!redis-6.2.5.tar.gz
2.解壓Redis安裝包!我這里放到opt目錄下了

3.進入解壓的Redis檔案中,可以看到Redis組態檔:redis.conf

4.安裝基本的環境
yum install -y gcc-c++
make
make install


5.Redis的默認安裝路徑 /usr/local/bin

6.將redis組態檔復制到我們當前目錄下

7.Redis默認不是后臺啟動的,修改組態檔:

8.啟動Redis服務!

9.使用redis-cli進行連接測驗!

10.查看redis的行程是否存在

11.關閉redis服務shutdown (內部關閉)

12.再次查看redis行程是否存在

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296760.html
標籤:其他
