在互联网应用中最广泛的两类缓存技术redis和memecache,下面讲述两者的异同与选择。
1redis和memecache的应用场景
我们需要关注的是:
1:内存的使用率,对于key-value这样简单的数据储存,memcache的内存使用率更高。如果采用hash结构,redis的内存使用率会更高。当然,这些都依赖于具体的应用场景。
2:数据持久化和主从复制时,只有redis拥有这两个特性,如果你的目标是构建一个缓存在升级或者重启后之前的数据不会丢失的话,那也只能选择redis。
3:操作,redis支持很多复杂的操作,甚至只考虑内存的使用情况,在一个单一操作里你常常可以做很多,而不需要将数据读取到客户端中(这样会需要很多的IO操作)。这些复杂的操作基本上和纯GET和POST操作一样快,所以你不只是需要GET/SET而是更多的操作时,redis会起很大的作用。
结论:对于两者的选择还是要看具体的应用场景,如果需要缓存的数据只是key-value这样简单的结构时还是采用memcache,它也足够的稳定可靠。如果涉及到存储,排序等一系列复杂的操作时,有持久化需求或者对数据结构和处理有高级要求时,毫无疑问选择redis。
2redis和memecache的异同
1、存储方式:
memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小
redis有部份存在硬盘上,这样能保证数据的持久性,支持数据的持久化。
2、数据支持类型:
redis在数据支持上要比memecache多的多。
3、使用底层模型不同:
新版本的redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。