背景:最近業務上要把couchbase替換成pika,但是沒有發現pika與redis的區別,因為pika既然都兼容redis,為什么還需要使用reids
先看下pika的說明,來自w3cschool
pika 是360 DBA和基礎架構組聯合開發的類redis 存儲系統, 完全支持Redis協議,用戶不需要修改任何代碼, 就可以將服務遷移至pika. 有維護redis 經驗的DBA 維護pika 不需要學習成本
pika 主要解決的是用戶使用redis的內存大小超過50G, 80G 等等這樣的情況, 會遇到比如啟動恢復時間長, 一主多從代價大, 硬件成本貴, 緩沖區容易寫滿等等問題. pika 就下針對這些場景的一個解決方案
從上面理解,pika就是解決redis洛盤到磁盤的問題,而redis是先寫內存,如果開啟持久化,就會同步數據到磁盤,但是寫內存,redis就會寫的很大,而現在我們也為又要保證實效性,有不能掉數據,所以選擇pika
什么是redis持久化,可以查看下面的內容,解釋的很清楚
https://blog.csdn.net/jim_007/article/details/81181654
什么是持久化:
以前在其他地方也聽過“持久化”這個詞,一般這個詞都是說“把數據保存到硬盤中”;
例如銀行數據那么大,它得持久保存,那他怎么持久化,當然保存到數據庫里,那數據庫位於哪?當然是硬盤啦!!!
持久化的目的:
Redis的數據操作都在內存中,redis崩掉的話,會丟失。Redis持久化就是對數據的更新異步的保存在磁盤上,以便數據恢復。
持久化的方式:
Redis的所有數據都是保存在內存中,有4種持久化方式:
半持久化模式:即Snapshot(RDB)快照模式,也是默認方式,不定期的通過異步方式保存某一時刻的數據在磁盤(這稱為“”);
全持久化模式:即append-only file(AOF),就是以追加的方式把每一次數據變化寫入到磁盤文件里面,記錄所有寫操作的命令;
虛擬內存方式
diskstore方式
------------------------------------------------------------------------------------------------------------------------------------------
我有一個疑問?把數據保存到內存是為了快速存取,落地持久化到硬盤還怎么保證快速?
答: 持久化的目的是備份,而不是數據交互,實際交互還是從內存取數據的,所以持久化不需要關心快速問題;