redis學習基礎《redis設計與實現》
阿新 • • 發佈:2018-12-21
1.特點
1.C語言開發,效能出色,純記憶體操作,每秒可處理超過10w讀寫(QPS)
2.多種資料結構,單個最大限制可到1GB(memcached只支援字串,最大1M)
3.受實體記憶體限制,不能作海量資料的讀寫。適用於較小資料量的高效能操作和運算上。
4.支援事務,持久化。
5.單執行緒模型(memcached是多執行緒)
2.支援的資料型別
- Sring
- List
- Set
- SortedSet 與範圍查詢
- hash
- Bitmap
- Hyperloglogs
- Geospatial (Geos 地理空間)索引半徑查詢
- pub/sub
- Redis 內建了 複製(replication),LUA指令碼(Lua scripting),LRU驅動事件(LRU eviction),事務(transactions) 和不同級別的 磁碟持久化(persistence), 並通過 Redis哨兵(Sentinel)和自動 分割槽(Cluster)提供高可用性(high availability)。
3.redis 比較快的理由
- 純記憶體操作,沒有磁碟io
- 單執行緒處理請求,沒有執行緒切換開銷和競爭條件,也不存在加鎖問題
- 多路複用模型epoll,非阻塞io(多路:多個網路連線;複用:複用同一個執行緒) 多路複用技術可以讓單個執行緒高效的處理多個連線請求
- 資料結構簡單,對資料操作也簡單。還做了自己的資料結構優化