String、list、hash、setredis
Reids相較於memcached優秀的一點是他能夠作磁盤持久化,默認是經過RDB,還有一種方式是AOF算法
經過bgsave命令觸發,父進程會執行fork建立子進程,子進程建立一個RDB的二進制文件,而後將此副本文件存儲在硬盤中緩存
優勢:RDB的數據恢復速度是遠高於AOF的多線程
缺點:因爲RDB文件的生成是命令觸發的,並非實時在持久化的,因此每次去生成這個文件的開銷會比較大dom
AOF是實時持久化的,redis每次去執行一個修改數據的命令,都會把修改的命令保存到AOF文件中memcached
優勢:實時在作持久化操做的性能
缺點:隨着時間的推移,AOF文件會變得愈來愈大,須要按期重寫來下降文件體積,並且AOF的加載速度更慢spa
哨兵提供監控服務,經過心跳機制,ping節點是否在正常狀態下,如果發現ping不通,則會主觀的認爲該節點故障,當半數的哨兵發現都ping不通時,則會認爲該節點宕機,從而運用roft算法(選舉機制),選出新的節點做爲主節點線程
惰性過時:當訪問該key值時,如果已經超過了超時時間,就會清除。如果不訪問,即便超時了也不會對其進行處理設計
按期過時:每隔一段時間(Redis默認是100MS)隨機抽取一部分key進行檢查一次,對已通過期的Key值進行清除處理
Redis是同時使用了這兩種策略的惰性過時和按期過時,看似按期過時好,可是存在一個問題是,按期過時如果同一時間下去處理大量過時的key值,那他也只會處理這其中的一部分,剩下的交給惰性處理。爲的是避免redis處理大量key值時,影響其的性能
最經常使用的一種策略allkeys-lru:當內存出現不足以容納新數據寫入時,在鍵空間中,移除最近最少使用的鍵值
其餘策略