Redis和Memcache有什么区别?

288 5月之前 缓存 Memcache Redis

答案

共同点:

  1. 都是内存数据库
  2. 都可以做一主多从的分布式集群

区别:

  1. Redis支持hash、list、set、sorted set等多种数据,Memcache 仅支持字符串键值数据。
  2. Redis 只使用单核;Memcache可使用多核多线程。所以100K以下数据Redis性能好,以上Memcache性能好。
  3. Redis 数据可以持久化到磁盘;Memcache 不支持数据持久化,关闭后数据随之消失
  4. Redis 单个key(变量)存放的数据有1GB的限制;Memcache 单个key(变量)存放的数据有1M的限制。
  5. Redis 利用单线程模型提供了事务的功能;Memcached提供了cas命令来保证数据一致性。
  6. redis 支持master-slave复制模式做分布式;memcache可以使用magent的一致性hash做分布式。

CAS(Check and Set)是一个确保并发一致性的机制,属于“乐观锁”范畴; CAS原理很简单:拿版本号,操作,对比版本号,如果一致就操作,不一致就放弃任何操作