一:Redis是什麼? Redis全稱:REmote DIctionary Server(Redis) 。Redis是一個由Salvatore Sanfilippo寫的key-value存儲系統,ANSI C語言編寫; 特點:開源免費、單線程、大併發、遵守BSD協議、支持網路、可基於記憶體亦可持久化、 ...
一:Redis是什麼?
Redis全稱:REmote DIctionary Server(Redis) 。Redis是一個由Salvatore Sanfilippo寫的key-value存儲系統,ANSI C語言編寫;
特點:開源免費、單線程、大併發、遵守BSD協議、支持網路、可基於記憶體亦可持久化、高性能的key-value資料庫、提供多種語言的API
1:Redis支持數據的持久化,可以將記憶體中的數據保存在磁碟中,重啟的時候可以再次載入進行使用;
2:Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲;
3:Redis支持數據的備份,即master-slave模式的數據備份;
二:Redis與其他key-value存儲有什麼不同?
1:Redis有著更為複雜的數據結構並且提供對他們的原子性操作,這是一個不同於其他資料庫的進化路徑。Redis的數據類型都是基於基本數據結構的同時對程式員透明,無需進行額外的抽象;
2:Redis運行在記憶體中但是可以持久化到磁碟,所以在對不同數據集進行高速讀寫時需要權衡記憶體,因為數據量不能大於硬體記憶體。在記憶體資料庫方面的另一個優點是,相比在磁碟上相同的複雜的數據結構,在記憶體中操作起來非常簡單,這樣Redis可以做很多內部複雜性很強的事情。同時,在磁碟格式方面他們是緊湊的以追加的方式產生的,因為他們並不需要進行隨機訪問;
三:Redis的優劣勢有哪些?
優勢:
1:性能極高:Redis能讀的速度是110000次/s,寫的速度是81000次/s ;
2:豐富的數據類型:Redis支持二進位案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操作;
3:原子性:Redis的所有操作都是原子性的,同時Redis還支持對幾個操作全並後的原子性執行;
4:豐富的特性:Redis還支持 publish/subscribe, 通知, key 過期等等特性;
劣勢:
1:數據量過大影響使用,畢竟數據是裝在記憶體中;
2:不具備自動容錯和恢復功能;