4.Redis与Memcached
两者都是非关系型内存键值,主要有以下不同:
数据类型
Memcached仅支持字符串类型,而Redis支持五种不同的数据类型,可以更灵活地解决问题。
数据持久化
Redis支持两种持久化策略:RDB快照和AOF日志,而Memcached不支持持久化。
分布式
Memcached不支持分布式,只能通过在客户端使用一致性哈希来实现分布式存储。这种方式在存储和查询时都需要先在客户端计算一次数据所在的节点。
Redis Cluster实现了分布式的支持。
内存管理机制
- 在Redis中,并不是所有数据都一直存储在内存中,可以将一些很久没用的value交换到磁盘,而Memcached的数据则一直在内存中。
- Memcached将内存分割成特定长度的块来存储数据,以完全解决内存碎片的问题。但是这种方式使得内存的利用率不高。