最直观的一些区别
- Redis 不仅支持简单的K/V类型数据,还支持 list , set, zset, hash等数据结构。
- Redis支持数据的备份,即master-slave模式的数据备份。
- Redis支持数据的持久化,可以将内在中的数据保持在磁盘中,重启的时候可以再次加载使用。
更深入的区别
- 在Redis中,不是所有数据都一直存储在内在中的,这是与Memcached相比最大的区别。
Redis只会缓存所有的key信息,如果Redis发现内在的使用量超过了某一个阀值,将触发swap操作,Redis会计算出哪些key对应的value需要swap到磁盘,然后再将这些value持久化到磁盘中,同时在内在中清除。
- Memcached 是多线程,非阻塞IO复用的网络模型,分为监听主线程和worker子线程。Redis 使用单线程的IO复用模型。
总结
- Redis使用的最佳方式是全部数据in-memory.
- Redis更多场景是作为Memcached的替代者来使用。
- 当需要除k/v之外的更多数据类型支持时,使用Redis更合适。
- 当存储的数据不 能被剔除时,使用Redis更合适。