Redis和Memcache有什么区别?

答案

共同点:

  • 都是内存数据库

  • 都可以做一主多从的分布式集群

区别:

  • Redis支持hash、list、set、sorted set等多种数据,Memcache 仅支持字符串键值数据。

  • Redis 只使用单核;Memcache可使用多核多线程。所以100K以下数据Redis性能好,以上Memcache性能好。

  • Redis 数据可以持久化到磁盘;Memcache 不支持数据持久化,关闭后数据随之消失

  • Redis 单个key(变量)存放的数据有1GB的限制;Memcache 单个key(变量)存放的数据有1M的限制。

  • Redis 利用单线程模型提供了事务的功能;Memcached提供了cas命令来保证数据一致性。

  • redis 支持master-slave复制模式做分布式;memcache可以使用magent的一致性hash做分布式。

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