Redis与Memcached区别:
两者都是非关系型数据库。主要有以下不同:
数据类型:
- Memcached仅支持字符串类型。
- redis支持:String,List,set,zset,hash 可以灵活的解决问题。
数据持久化:
- Memcached不支持持久化。
- Redis采用两种持久化策略:RDB快照和AOF日志。
分布式:
- Mencached不支持分布式,只能在客户端使用一致性hash来实现分布式存储,这种方式在存储和查询时都需要在客户端先计算一次数据所在的节点。
- redis cluster实现了分布式的支持。
内存管理机制:
- redis中,并不是所有数据都一直存储在内存中,可以将一些很久没用的value交换到磁盘,而memcached数据则候会一直在内存中。
- memcached将内存分割成特定的块进行存储,以完全解决内存碎片化的问题,但是这种方式使得内存利用率不高,如块大小128bytes,只存储了100bytes的数据,那么剩下的28bytes就浪费掉了。
键的过期时间:
redis可以为每个键设置过期时间,当键过期时,自动