【区别】
四大加速器opcache,apc,xcache,eAccelerator是对PHP代码编译加速。
缓存服务Redis,memcache是对网站数据进行缓存,提高数据查询速度。
【脚本加速】
通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是省去了每次加载和解析PHP脚本的开销。理想状态下可以数倍提示PHP速度。
opcache:PHP官方出品,效果最好,推荐。
apc:APC全称是Alternative PHP Cache,是PHP PECL的一个扩展。
xcache:国人研发的一款脚本加速器。
eAccelerator:前身是truck-mmcache,开发者被Zend给招安。
【数据缓存】
通过将第一次查询的数据缓存起来,遇到下次查询的时候,直接调用之前存储的结果,加快网站相应速度。
Redis:Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
memcache:memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著 。
memcache比redis早了10年,有广泛的群众基础。
但是redis基本上是memcache的下一代产品,新项目技术选型,都是redis了。
数据类型
redis数据类型丰富,支持set liset等类型
memcache支持简单数据类型,需要客户端自己处理复杂对象
持久性
redis支持数据落地持久化存储
memcache不支持数据持久存储
分布式存储
redis支持master-slave复制模式
memcache可以使用一致性hash做分布式
value大小不同
memcache是一个内存缓存,key的长度小于250字符,单个item存储要小于1M,不适合虚拟机使用
数据一致性不同
redis使用的是单线程模型,保证了数据按顺序提交。
memcache需要使用cas保证数据一致性。CAS(Check and Set)是一个确保并发一致性的机制,属于“乐观锁”范畴;原理很简单:拿版本号,操作,对比版本号,如果一致就操作,不一致就放弃任何操作
cpu利用
redis单线程模型只能使用一个cpu,可以开启多个redis进程