1. 程式人生 > 資料庫 >Memcache 與Redis 的區別都有哪些?

Memcache 與Redis 的區別都有哪些?

Redis 執行在記憶體中但是可以持久化到磁碟,所以在對不同資料集進行高速讀寫時需要權衡記憶體, 因為資料量不能大於硬體記憶體。在記憶體資料庫方面的另一個優點是,相比在磁碟上相同的複雜的資料結構,在記憶體中操作起來非常簡單,這樣 Redis 可以做很多內部複雜性很強的事情。同時, 在磁碟格式方面他們是緊湊的以追加的方式產生的, 因為他們並不需要進行隨機訪問。
  2、Redis 的資料型別?
  答:Redis 支援五種資料型別:string( 字串),hash( 雜湊), list( 列表), set( 集合) 及 zsetsorted set:有序集合)。
  我們實際專案中比較常用的是 string,hash 如果你是 Redis 中高階使用者,還需要加上下面幾種資料結構 HyperLogLog、Geo、Pub/Sub。

  如果你說還玩過 Redis Module,像 BloomFilter,RedisSearch,Redis-ML,面試官的眼睛就開始發亮了。
  3、使用Redis 有哪些好處?
  1、速度快, 因為資料存在記憶體中, 類似於 HashMap, HashMap 的優勢就是查詢和操作的時間複雜度都是 O1)
  2、支援豐富資料型別, 支援 string, list, set, Zset, hash 等
  3、支援事務, 操作都是原子性, 所謂的原子性就是對資料的更改要麼全部執行, 要麼全部不執行
  4、豐富的特性:可用於快取,訊息,按 key 設定過期時間,過期後將會自動刪除
  4、Redis 相比Memcached 有哪些優勢?
  1、Memcached 所有的值均是簡單的字串, redis 作為其替代者, 支援更為豐富的資料類
  2、Redis 的速度比 Memcached 快很3、Redis 可以持久化其資料
  3、更多面試題關注微信公眾號:Java2B
  5、Memcache 與Redis 的區別都有哪些?
  1、儲存方式 Memecache 把資料全部存在記憶體之中, 斷電後會掛掉, 資料不能超過記憶體大小。Redis 有部分存在硬碟上, 這樣能保證資料的永續性
  2、資料支援型別 Memcache 對資料型別支援相對簡單。Redis 有複雜的資料型別。
  3、使用底層模型不同 它們之間底層實現方式 以及與客戶端之間通訊的應用協議不一樣。Redis 直接自己構建了 VM 機制 ,因為一般的系統呼叫系統函式的話, 會浪費一定的時間去移動和請求