== 简介 ==
memcache : 是一套分布式的高速缓存系统。可用于提升网站的访问速度,对网站访问速度提升效果非常明显。
reids : redis是一个高性能的key-value数据库。支持的value类型较于memcache会更多。
== 两者的不同 ==
存储方式
memcache : 会把数据全存在内存当中,当然断电之后会挂掉,存储数据不能超过内存大小。
redis : 既可以把数据存在内存当中,也可以将数据转移到硬盘当中,可以保持数据的持久化。
数据格式
memcache : 可以存储字符串,数组,图片,文件。
redis : 存储类型较于memcache会更多,包括string,list,set,zset,hash
运用场景
memcache : 如果只是key-value简单的数据存储的话,memcache完全可以胜任,效果也不错,内存使用率更高一点。所以我们一般应用程序的话,用memcache的话
完全是可以的。
redis : 如果对持久化需求或者对数据结构和处理有高级要求的话,可以考虑选择redis。
总结
无论是memcache还是redis,性能方面都比较优秀,所以没必要过多的关注性能。两者各有各自的长处,在两者的选择上,我个人理解是,根据具体应用去
选择。memcache比较简单粗暴,如果只是单纯的key-value操作的话, memcache会是个不错的选择,它已经足够可靠安全了,而且,memcache较于redis的内存使
用率会更高一点。如果需要不只是GET/SET操作的时候而是更多复杂操作的时候,选择redis会更好。
== 查看服务器上的memcache和redis ==
执行命令查看 ps -aux | grep memcache 和 ps -aux | grep redis
redis可直接输入命令redis进入操作。
== 使用方式 ==
经过一番折腾,总算把memcacahe和redis集成为一个较为完整的类
该类的使用方法可以调用cache基类,也可以直接调用相关类进行使用。
cache基类 :
使用方式 : $cacher = Business_CacheHelper_Cache::getInstance('redis');
$cacher->set('hang', 'zhou', 100);
$cacher->get('hang');
memcache类 :
使用方式 : $memcacheObj = new Business_CacheHelper_Memcache();
$memcacheObj->set('hang', 'zhou');
$memcacheObj->get('hang');
redis类 :
使用方式 : $redisObj= new Business_CacheHelper_Memcache();
$redisObj->set('hang', 'zhou');
$redisObj->get('hang');
== 代码清单 ==
Cache类 :
memcache : 是一套分布式的高速缓存系统。可用于提升网站的访问速度,对网站访问速度提升效果非常明显。
reids : redis是一个高性能的key-value数据库。支持的value类型较于memcache会更多。
== 两者的不同 ==
存储方式
memcache : 会把数据全存在内存当中,当然断电之后会挂掉,存储数据不能超过内存大小。
redis : 既可以把数据存在内存当中,也可以将数据转移到硬盘当中,可以保持数据的持久化。
数据格式
memcache : 可以存储字符串,数组,图片,文件。
redis : 存储类型较于memcache会更多,包括string,list,set,zset,hash
运用场景
memcache : 如果只是key-value简单的数据存储的话,memcache完全可以胜任,效果也不错,内存使用率更高一点。所以我们一般应用程序的话,用memcache的话
完全是可以的。
redis : 如果对持久化需求或者对数据结构和处理有高级要求的话,可以考虑选择redis。
总结
无论是memcache还是redis,性能方面都比较优秀,所以没必要过多的关注性能。两者各有各自的长处,在两者的选择上,我个人理解是,根据具体应用去
选择。memcache比较简单粗暴,如果只是单纯的key-value操作的话, memcache会是个不错的选择,它已经足够可靠安全了,而且,memcache较于redis的内存使
用率会更高一点。如果需要不只是GET/SET操作的时候而是更多复杂操作的时候,选择redis会更好。
== 查看服务器上的memcache和redis ==
执行命令查看 ps -aux | grep memcache 和 ps -aux | grep redis
redis可直接输入命令redis进入操作。
== 使用方式 ==
经过一番折腾,总算把memcacahe和redis集成为一个较为完整的类
该类的使用方法可以调用cache基类,也可以直接调用相关类进行使用。
cache基类 :
使用方式 : $cacher = Business_CacheHelper_Cache::getInstance('redis');
$cacher->set('hang', 'zhou', 100);
$cacher->get('hang');
memcache类 :
使用方式 : $memcacheObj = new Business_CacheHelper_Memcache();
$memcacheObj->set('hang', 'zhou');
$memcacheObj->get('hang');
redis类 :
使用方式 : $redisObj= new Business_CacheHelper_Memcache();
$redisObj->set('hang', 'zhou');
$redisObj->get('hang');
== 代码清单 ==
Cache类 :
<?php
class Business_CacheHelper_Cache
{
/**
* 缓存连接参数
* @var string
* @access protected
*/
protected $_options = array();