Memcache 與Redis 的區別都有哪些?
阿新 • • 發佈:2021-01-08
Redis 執行在記憶體中但是可以持久化到磁碟,所以在對不同資料集進行高速讀寫時需要權衡記憶體, 因為資料量不能大於硬體記憶體。在記憶體資料庫方面的另一個優點是,相比在磁碟上相同的複雜的資料結構,在記憶體中操作起來非常簡單,這樣 Redis 可以做很多內部複雜性很強的事情。同時, 在磁碟格式方面他們是緊湊的以追加的方式產生的, 因為他們並不需要進行隨機訪問。
2、Redis 的資料型別?
答:Redis 支援五種資料型別:string( 字串),hash( 雜湊), list( 列表), set( 集合) 及 zsetsorted set:有序集合)。
我們實際專案中比較常用的是 string,hash 如果你是 Redis 中高階使用者,還需要加上下面幾種資料結構 HyperLogLog、Geo、Pub/Sub。
3、使用Redis 有哪些好處?
1、速度快, 因為資料存在記憶體中, 類似於 HashMap, HashMap 的優勢就是查詢和操作的時間複雜度都是 O1)
2、支援豐富資料型別, 支援 string, list, set, Zset, hash 等
3、支援事務, 操作都是原子性, 所謂的原子性就是對資料的更改要麼全部執行, 要麼全部不執行
4、豐富的特性:可用於快取,訊息,按 key 設定過期時間,過期後將會自動刪除
4、Redis 相比Memcached 有哪些優勢?
2、Redis 的速度比 Memcached 快很3、Redis 可以持久化其資料
3、更多面試題關注微信公眾號:Java2B
5、Memcache 與Redis 的區別都有哪些?
1、儲存方式 Memecache 把資料全部存在記憶體之中, 斷電後會掛掉, 資料不能超過記憶體大小。Redis 有部分存在硬碟上, 這樣能保證資料的永續性
2、資料支援型別 Memcache 對資料型別支援相對簡單。Redis 有複雜的資料型別。
3、使用底層模型不同 它們之間底層實現方式 以及與客戶端之間通訊的應用協議不一樣。Redis 直接自己構建了 VM 機制 ,因為一般的系統呼叫系統函式的話, 會浪費一定的時間去移動和請求