1. redis 是什麼?
REmote DIctionary Server(遠程字典服務器)
是完全開源免費的,用 C 語言編寫的,遵守 BSD 協議,是一個高性能的 (key/value)分佈式內存數據庫,基於內存運行並支持持久化的 NoSQL 數據庫, 是當前最熱門的 NoSql 數據庫之一,也被人們稱爲數據結構服務器。
能滿足對海量數據的讀寫
redis 的鍵只能是字符串
redis 的值支持多種數據類型:
字符串:string
哈希:hash
字符串列表:list
字符串集合:set
有序集合:zset(sorted set) HyperLogLog 結構:redis2.8.9 版本之後纔有,用來做統計的算法
GEO 結構:redis3.2 版本之後纔有,是地理位置相關的數據類型
- redis 的優點?
高性能(Redis 讀的速度是 11W 次/s,寫的速度是 8.1W 次/s)
原子性(保證數據的準確性)
持久存儲(兩種方式 RDB/快照,AOF/日誌)
主從結構,主機會自動將數據同步到從機,可以進行讀寫分離
從 3.0 版本開始,支持集羣
- redis 的缺點?
由於是內存數據庫,所以,單臺機器存儲的數據量,跟機器本身的內存 大小有關。雖然 redis 本身有 key 過期策略,但是還是需要提前預估和 節約內存。如果內存增長過快,需要定期刪除數據。
修改配置文件,進行重啓,將硬盤中的數據加載進內存,時間比較久。 在這個過程中,redis 不能提供服務。