階段一目標
- redis的概念和方向
- redis解決了什麼問題
- 同類技術有哪些
- redis術的主要組成部分
- redis爲什麼會出現
目標一: 該技術的概念和方向
官方定義:
Redis 是一個開源(BSD許可)的,內存中的數據結構存儲系統,它可以用作數據庫、緩存和消息中間件。 它支持多種類型的數據結構,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 與範圍查詢, bitmaps, hyperloglogs 和 地理空間(geospatial) 索引半徑查詢。 Redis 內置了 複製(replication),LUA腳本(Lua scripting), LRU驅動事件(LRU eviction),事務(transactions) 和不同級別的 磁盤持久化(persistence), 並通過 Redis哨兵(Sentinel)和自動 分區(Cluster)提供高可用性(high availability)。
方向:
高速緩存
- 性能高
- 數據類型多
- 操作原則性
- 特性足…
目標二: redis解決了什麼問題
提高網站響應速度
redis,存內存操作,將一個複雜的sql語句耗時幾秒查詢出來的數據緩存在內存中.之後查詢時,只需要在緩存中讀取數據即可.
減輕數據庫訪問壓力
將數據庫中讀取的數據緩存在內存中後,在緩存失效前,都不會去數據庫中讀取數據,減少數據庫的壓力
接口冪等性
基於redis的特性,可使用redis設置分佈式鎖,防止多次提交,多次請求等併發問題.
目標三: 同類技術有哪些
緩存
同樣可以用作緩存的技術有Ehcache, Memcached
三者對比:
參考博客(內容詳細): https://blog.csdn.net/jationxiaozi/article/details/8509732
ehcache: 小,快,簡單,易擴展,但集羣麻煩
memcache: 多線程,高性能
redis: 持久化,多數據類型,高性能,多特性,更新快
目標四: redis的主要組成部分
- 多種數據結構
- 主從複製(replication)
- LUA腳本(Lua scripting)
- LRU驅動事件(LRU eviction)
- 事務(transactions)
- 持久化 (AOP,RDB)
- 哨兵機制 (Sentinel)
- 自動分區 (Cluster)
目標五: redis爲什麼會出現
redis的作者antirez和朋友共同創建了一個LLOOGG.com的網站。面對日益膨大的用戶,網址使用mysql都需要在硬盤使用彈出/推入操作,性能嚴重受限於硬盤I/O。antirez在不改變硬件的基礎上自己寫了一個基於內存操作的具有列表結構的內存數據庫原型,也就是redis
參考博客(內容詳細): https://blog.csdn.net/chengqiuming/article/details/79113358