redis→分散式快取
簡介
1. redis 是什麼?
- REmote DIctionary Server(遠端字典伺服器)
- 是完全開源免費的,用 C 語言編寫的,遵守 BSD 協議,是一個高效能的 (key/value)分散式記憶體資料庫,基於記憶體執行並支援持久化的 NoSQL 資料庫, 是當前最熱門的 NoSql 資料庫之一,也被人們稱為資料結構伺服器。
- 能滿足對海量資料的讀寫
- redis 的鍵只能是字串
- redis 的值支援多種資料型別:
- 字串:string
- 雜湊:hash
- 字串列表:list
- 字串集合:set
- 有序集合:zset(sorted set) HyperLogLog 結構:redis2.8.9 版本之後才有,用來做統計的演算法
- GEO 結構:redis3.2 版本之後才有,是地理位置相關的資料型別
2. redis 的優點?
- 高效能(Redis 讀的速度是 11W 次/s,寫的速度是 8.1W 次/s)
- 原子性(保證資料的準確性)
- 持久儲存(兩種方式 RDB/快照,AOF/日誌)
- 主從結構,主機會自動將資料同步到從機,可以進行讀寫分離
- 從 3.0 版本開始,支援叢集
3. redis 的缺點?
- 由於是記憶體資料庫,所以,單臺機器儲存的資料量,跟機器本身的記憶體 大小有關。雖然 redis 本身有 key 過期策略,但是還是需要提前預估和 節約記憶體。如果記憶體增長過快,需要定期刪除資料。
- 修改配置檔案,進行重啟,將硬碟中的資料載入進記憶體,時間比較久。 在這個過程中,redis 不能提供服務。
4. redis 的主要功能?
- KV
- Cache
- Persistence
5. redis 與其他 key-value 快取產品的區別
- redis 支援資料的持久化,可以將記憶體中的資料保持在磁碟中,重啟的 時候可以再次載入進行使用。
- redis 不僅僅支援簡單的 key-value 型別的資料,同時還提供 list,set, zset,hash 等資料結構的儲存。
- redis 支援資料的備份,即 master-slave 模式的資料備份。
6. redis 的主要功能
- 記憶體儲存和持久化:redis 支援非同步將記憶體中的資料寫到硬碟上,同時 不影響繼續服務。
- 分散式快取
- 取最新 N 個資料的操作,如:可以將最新的 10 條評論的 ID 放在 List 集合。
- 模擬類似於 HttpSession 這種需要設定過期時間的功能。
- 釋出、訂閱訊息系統。
- 定時器、計數器。
7. redis 的應用場景?
- 主要應用在高併發和實時請求的場景
- 關注列表,粉絲列表
- 微博數,粉絲數
- 熱門微博
8. redis 版本下載
- https://redis.io/
- http://www.redis.cn/
- 下載最新穩定版,如下圖所示。
9.阿里商品資訊如何存放?
(1)商品的基本資訊
RDBMS中,mysql(內部工程師自己根據業務改造)
(2)商品描述、詳情、評論(多文字類的):MongDB中
(3)商品圖片
- 淘寶自己的TFS
- Google的GFS
- Hadoop HDFS
(4)商品關鍵字:淘寶Isearch搜尋引擎(多隆,蔡景現)
(5)商品的波段性熱點高頻資訊:Redis,Tair
(6)商品交易、價格計算、支付系統
外部系統,第三方提供支付介面
支付寶,由苗人鳳負責
Redis安裝
(1)將tar包上傳 /usr/local並解壓
(2)安裝一些可能用到的東西
(3)在redis解壓路徑,進行編譯
(4)進行安裝
(5)安裝好的可執行檔案在以下目錄
Redis啟動和停止
(1)啟動redis
(2)停止 ctrl + C
(3)修改配置檔案
(4)修改為yes,表示走守護程式
(5)使用剛修改的配置,不佔用當前視窗
(6)檢視啟動後的程式
(7)關閉服務端
Redis客戶端
(1)進入客戶端
Redis雜項知識
(1)redis-benchmark可用於效能測試
必須redis-server啟動後,再執行
(2)redis預設埠6379
6379對應著號碼MERZ
(3)redis所有的索引都是從零開始
(4)redis的預設庫有16個(索引0~15)
(5)檢視多少個鍵
(6)前一個清當前庫,後一個清所有庫
Redis配置檔案詳解
(1)對大小寫不敏感,只支援bytes型別
(2)redis.conf作為一個總的檔案,可以包含其他檔案
(3)設定後臺程式,埠號,日誌級別,庫的數量
(4)快照的配置,用於配置RDB策略,配置dump檔案相關資訊
(5)主從複製的配置
(6)可以配置密碼,預設無密碼,配置密碼,16個庫是用同一個密碼
(7)最大連線,最大記憶體的一些設定
(8)這裡可以配置AOF的持久化策略
Redis的RDB策略
RDB 是什麼
- Redis DataBase,在指定的時間間隔內將記憶體中的資料集快照寫入磁碟,也就是 Snapshot 快照,它恢復時是將快照檔案直接讀到記憶體裡
- Redis 會單獨建立(fork,可以理解為拷貝)一個子程式來進行持久化,會先將數 據寫入到一個臨時檔案中,待持久化過程都結束了,再用這個臨時檔案替換上次持 久化好的檔案
- 整個過程中,主程式是不進行任何 IO 操作的,這就確保了極高的效能如果需要進 行大規模資料的恢復,且對於資料恢復的完整性不是非常敏感,那 RDB 方式要比 AOF 方式更加的高效。
- RDB 的缺點是最後一次持久化後的資料可能丟失。
Fork
- Fork 的作用是複製一個與當前程式一樣的程式。
- 新程式的所有資料(變數、環境變數、程式計數器等)數值都和原程式一致,但是 是一個全新的程式,並作為原程式的子程式
RDB 的優點
- 適合大規模的資料恢復
- 對資料完整性和一致性要求不高
RDB 的缺點
- 在一定間隔時間做一次備份,所以如果 redis 意外 down 掉的話,就會丟失最後一 次快照後的所有修改
- Fork 的時候,記憶體中的資料被克隆了一份,大致 2 倍的膨脹性需要考慮
(1)如何配置RDB
(2)效能配置:持久化的RDB檔案會進行壓縮,改為NO就不壓縮
(3)redis會對持久化的資料進行校驗,增加10%的效能消耗
Redis的AOF策略
AOF 是什麼
- 以日誌的形式來記錄每個寫操作,將 Redis 執行過的所有寫指令記錄下來(讀操作 不記錄),只許追加檔案但不可以改寫檔案
- redis 啟動之初會讀取該檔案重新構建資料,換言之,redis 重啟的話就根據日誌文 件的內容將寫指令從前到後執行一次以完成資料的恢復工作
(1)以日誌的形式持久化操作(只讀寫的日誌)
(2)配置AOF策略,改yes,開啟AOF
(3)AOF資料修復
(4)dump和AOF同時存在,是AOF生效
Redis的事務
redis 的事務是什麼?
- 可以一次執行多個命令,批處理,本質是一組命令的集合。一個事務中的所有命令 都會序列化,按順序地序列化執行而不會被其它命令插入,不許加塞
redis 的事務能做什麼?
- 一個佇列中,一次性、順序性、排他性的執行一系列命令
(1)正常執行
(2)取消事務
(3)全體連坐
(4)redis支援部分事務(要求語法正確)
(5)watch監控
樂觀鎖和悲觀鎖
悲觀鎖:生產環境下用的不多
樂觀鎖:加個行鎖
相關文章
- SmartSql Redis 分散式快取SQLRedis分散式快取
- Redis——快取穿透、快取擊穿、快取雪崩、分散式鎖Redis快取穿透分散式
- WEB 應用快取解析以及使用 Redis 實現分散式快取Web快取Redis分散式
- 分散式快取分散式快取
- 分散式快取綜合指南:Kubernetes + Redis + Spring Boot分散式快取RedisSpring Boot
- 分散式快取方案分散式快取
- 聊聊分散式快取分散式快取
- 聊聊本地快取和分散式快取快取分散式
- 分散式快取擊穿分散式快取
- 分散式快取NCache使用分散式快取
- 同為分散式快取,為何 Redis 更勝一籌?分散式快取Redis
- 分散式快取 - 快取簡介,常用快取演算法分散式快取演算法
- AbpVnext使用分散式IDistributedCache Redis快取(自定義擴充套件方法)分散式Redis快取套件
- 分散式之快取擊穿分散式快取
- k04_分散式快取分散式快取
- 分散式快取 - 概念解釋分散式快取
- 分散式快取基礎教程分散式快取
- 雲上的分散式快取分散式快取
- 分散式系統快取系列一 認識快取分散式快取
- 用Java寫一個分散式快取——快取管理Java分散式快取
- 從快取到分散式快取的那些事快取分散式
- 搞懂分散式技術14:Spring Boot使用註解整合Redis快取分散式Spring BootRedis快取
- 天翼雲分散式快取服務(Redis)的幾個核心概念分散式快取Redis
- ASP.NET Core與Redis搭建一個簡易分散式快取ASP.NETRedis分散式快取
- 分散式快取架構綜述分散式快取架構
- 分散式系統中有哪些快取?分散式快取
- ASP.NET Core - 快取之分散式快取ASP.NET快取分散式
- 分散式快取Redis Cluster在華泰證券的探索與實踐分散式快取Redis
- 微服務 - Redis快取 · 資料結構 · 持久化 · 分散式 · 高併發微服務Redis快取資料結構持久化分散式
- 《分散式快取》讀書筆記二分散式快取筆記
- 深入分散式快取 — 學習總結分散式快取
- Gitlab Runner的分散式快取實戰Gitlab分散式快取
- 用Java寫一個分散式快取——快取淘汰演算法Java分散式快取演算法
- 小工匠聊架構 - 分散式快取技術_快取設計架構分散式快取
- 天翼雲分散式快取服務(Redis)的應用場景(乾貨)分散式快取Redis
- Redis快取擊穿、快取穿透、快取雪崩Redis快取穿透
- [Redis]快取穿透/快取擊穿/快取雪崩Redis快取穿透
- 如何在SPRING中同時管理本地快取和分散式快取? - techblogSpring快取分散式