1. 程式人生 > >redis學習基礎《redis設計與實現》

redis學習基礎《redis設計與實現》

1.特點

  1.C語言開發,效能出色,純記憶體操作,每秒可處理超過10w讀寫(QPS)

  2.多種資料結構,單個最大限制可到1GB(memcached只支援字串,最大1M)

  3.受實體記憶體限制,不能作海量資料的讀寫。適用於較小資料量的高效能操作和運算上。

  4.支援事務,持久化。

  5.單執行緒模型(memcached是多執行緒)

2.支援的資料型別

  1. Sring
  2. List
  3. Set
  4. SortedSet 與範圍查詢
  5. hash
  6. Bitmap
  7. Hyperloglogs
  8. Geospatial (Geos 地理空間)索引半徑查詢
  9. pub/sub
  10. Redis 內建了 複製(replication),LUA指令碼(Lua scripting),LRU驅動事件(LRU eviction),事務(transactions) 和不同級別的 磁碟持久化(persistence), 並通過 Redis哨兵(Sentinel)和自動 分割槽(Cluster)提供高可用性(high availability)。

3.redis 比較快的理由

  • 純記憶體操作,沒有磁碟io
  • 單執行緒處理請求,沒有執行緒切換開銷和競爭條件,也不存在加鎖問題
  • 多路複用模型epoll,非阻塞io(多路:多個網路連線;複用:複用同一個執行緒) 多路複用技術可以讓單個執行緒高效的處理多個連線請求
  • 資料結構簡單,對資料操作也簡單。還做了自己的資料結構優化