aerospike VS redis
aerospike / redis
自动分片 平衡 水平扩容
Aerospike's performance is much better than any clustered-nosql solutions out there.
Higher performance per-node means smaller cluster which is lower TCO (Total Cost of Ownership) and maintenance.
Aerospike does auto-clustering, auto-sharding, auto-rebalancing
(when cluster state changes) most of which needs manual steps in other databases.
Redis expects a lot of things to be handled at the application layer like sharding, request redirection etc.
Even though redis has a way to persist (snapshot or AOF),
it has its own problems as its designed more like an addon.
Aerospike is developed natively with persistence in mind.
AS(aerospike) can be the good fit as it provides the mode where indexes can be kept in memory and data in SSD.
Redis isn't a distributed database as Aerospike is - it requires application-side sharding
(which becomes a bit of a clustering and horizontal scaling nightmare) or a separate proxy,
which often ends up being the bottleneck.
Redis does not have a clustering solution officially released.
In Aerospike a client can connect to any node of the cluster,
and the first things it does is ask for the IPs of the other nodes, and the partition map.
Knowing the partition map, a client can go directly to the correct node for any operation.
It also keeps track of changes to the cluster.
There is no front controller, no proxy, no name node, no 'master'.
不需要 前端控制器 代理 主节点
Aerospike is record level ACID compliant which is true for most of the No-SQL databases.
Aerospike is designed for clustered environment,
Built for horizontal scaling,
Supports data balancing(Automic/Manual),
Auto sharding – application level or transparent to end user.
Clustering or lets call it Auto Clustering.
Add a node and bring it within cluster happens in <100 ms.
It is implemented using Paxos Algorithm.
What is is Paxos algorithm?
As many have discovered, persistence in Redis – via snapshots and append-only files – can reduce performance and even lead to data loss.
Redis HyperLogLog 使用