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原理很简单:拿版本号,操作,对比版本号,如果一致就操作,不一致就放弃任何操作