作为一个需要时刻学习的DBA,我尝试从自己的角度分析,memcached和Redis区别
第一、性能比较
1.CPU使用
memcached有单个文件1M内存限制;
Redis则没有相应限制
总结:综合比较吧,2者性能差不多;
第二、功能比较
1.支持的数据类型
memcached只支持数据存放在内存中,Redis则可以灵活调整(快照、AOF)
3.数据一致性(事务支持)
Memcache在并发场景下,用case保证一致性
redis事务支持比较弱,只能保证事务中的每个操作连续执行
第三、运维和学习成本:
1.复杂度
memcached复杂度较低,容易学习和管理,redis相应操作较复杂!
2.集群部署(解决单点故障)
Memcache本身没有数据冗余机制
redis:数据量较小的更性能操作和运算上
memcache:用于在动态系统中减少数据库负载,提升性能;做缓存,提高性能(适合读多写少,对于数据量比较大,可以采用sharding)
第一、性能比较
1.CPU使用
memcached是多线程的,可以提高多核CPU的使用能力;
redis是单进程的,使用串行方式处理数据。
2.内存使用memcached有单个文件1M内存限制;
Redis则没有相应限制
总结:综合比较吧,2者性能差不多;
第二、功能比较
1.支持的数据类型
memcache数据结构单一(字符串)
redis支持类型相对较多(字符串,列表,有序集合,哈希表,集合)
2.数据是否能持久化memcached只支持数据存放在内存中,Redis则可以灵活调整(快照、AOF)
3.数据一致性(事务支持)
Memcache在并发场景下,用case保证一致性
redis事务支持比较弱,只能保证事务中的每个操作连续执行
第三、运维和学习成本:
1.复杂度
memcached复杂度较低,容易学习和管理,redis相应操作较复杂!
2.集群部署(解决单点故障)
Memcache本身没有数据冗余机制
--未完待续
redis:数据量较小的更性能操作和运算上
memcache:用于在动态系统中减少数据库负载,提升性能;做缓存,提高性能(适合读多写少,对于数据量比较大,可以采用sharding)