docs/introduce_en.md
Pika is a Redis-compatible storage system jointly developed by the DBA and Infrastructure teams. It fully supports the Redis protocol, allowing users to migrate services to Pika without modifying any code. Pika is a persistent, large-capacity Redis storage service, compatible with the vast majority of string, hash, list, zset, and set interfaces (compatibility details). It resolves the capacity bottleneck of Redis caused by storing enormous amounts of data exceeding available memory. Like Redis, it supports master-slave replication via the slaveof command, with both full sync and incremental sync. The DBA team also provides migration tools so users won't feel the migration process — it is seamless.
The biggest difference between Pika and Redis is that Pika is persistent storage, with data stored on disk, while Redis is an in-memory storage. This difference brings Pika both advantages and disadvantages compared to Redis.
cp speed (with an additional snapshot recovery process that takes some time). This makes backing up databases of hundreds of GB quick, and faster backups better resolve the full-sync problem in master-slave scenarios.Since Pika stores data both in memory and on disk, its performance is somewhat lower than Redis. However, we generally use SSD drives to store data, trying to keep up with Redis performance as much as possible.
From the comparison above, if your business data is large and Redis can barely support it (e.g., greater than 50 GB), or your data is critical and must not be lost on power failure, Pika can solve your problems. In practice, Pika's performance is approximately 50% of Redis.
Currently, Pika is deployed and running more than 20 giant clusters in production. Rough statistics: the current total daily requests exceed 10 billion, and the total amount of data served is approximately 3 TB.
First, 150 GB of data was written to Pika — 50 Hash keys were written with 10 million fields each. Redis was written with 5 GB of data. Pika: 18 threads Redis: single thread
Pika's single-thread performance is certainly inferior to Redis. Pika has a multi-threaded structure, so with a higher thread count, the performance of certain data structures can surpass Redis.
Developers don't need to do anything — no code changes, no driver replacement (Pika uses the native Redis driver). Just watch the DBA do the work.