背景:最近业务上要把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方式
------------------------------------------------------------------------------------------------------------------------------------------
我有一个疑问?把数据保存到内存是为了快速存取,落地持久化到硬盘还怎么保证快速?
答: 持久化的目的是备份,而不是数据交互,实际交互还是从内存取数据的,所以持久化不需要关心快速问题;