Code Bye

Redis和Memcached有什么区别?

 

Redis和Memcached功能和性能有什么不一眼?应用的领域有什么不同?


5分
可以简单的理解为,redis就是数据库,你有多个应用的话可以同时访问一个redis,memcache的话就是本机缓存,当然可以多节点同步。

10分
memchache 不是本机缓存哦
本机一般用localcache

memcache更为准确的叫法是 memcached 
是Danga团队开发的一套分布式缓存。

Redis虽然也叫做内存数据库(nosql中的key-value类型),其用途也可认为是缓存系统。

就我在几家大公司的工作实践来看,redis的高可用性要比memcached高。


5分
Redis支持更多的数据结构~~~ 

5分
Redis支持持久机制、这一点比较好;一旦忘记处理数据了,它会帮你持久起来,这样有些重要数据不会丢失。
Memcached就是一个纯粹的缓存服务器了,可用性你懂得。

15分
用一个场景来评论两者的优越性:
某论坛有10个版块,每个版块平均一年有100万条记录,也就是说需要将1000万条记录缓存起来。用户进入某个版块,能瞬间将分页好的帖子呈现出来,单台(或很少人)服务器能不能搞定?

Memcache对个场景非常棘手,因为key不好制定,版块名为key缓存100万条?显示不行。
看我用Redis解决,以版块为key没错,将100w条的ID按时间排序后,存入Redis的有序表中。假如要取n页20条,只需在Redis数组中以n*20索引位开始取20个ID出来,再通过ID在数据库里取20条完整记录就完成了。10个数组1000万条ID缓存,半台服务器就搞定。

Redis的灵活性远远超于上述场景。主要表现在:
1、更丰富的数据类型支持(哈希、有序列表、集合等等)
2、强大的命令。不是像Memcache那仅使用内存,而浪费掉了CPU资源。
3、持久性。Memcache是可以将缓存数据持久的,只是它开放了底层接口,开发者要用第三方数据库来支持。但是,Redis实现了乐观锁(支持事务)的基本数据库功能。
4、主从结构:Redis支持master-slave结构
5、集群:Memcache是不支持集群的,多台Memcache共处,实际上是通过客户端做Hash来实现的。Redis 3.0将实现官方意义的集群。
6、运维:Redis的第三方监控工具很多。当然功能越强大,运维工作量也是成正比。

要干活了,暂写这些。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Redis和Memcached有什么区别?