1.首先,memcached和redis都基于内存,memcached偏向cache,redis更多扮演数据库的角色,支持更丰富的数据类型,单从性能上比,不太具有可比性,不会有数量级的差异. 两者也可并存,在数据库(redis)前端布置cache(memcached)也是一种节省资源的方式;
2. 用redis的网站很多,这里有一个列表
http://redis.io/topics/whos-using-redis
3. 使用memcached出色的网站是google,facebook,一些公司,几千台的memcached集群很常见.
4. 如果有想法想用redis代替memcached集群,不建议,一致性哈希的实现有待成熟,还不能像memcached集群那样动态扩容,数据规划不得不加倍小心;
5. 如果想使用redis的持久化,那么设计的时候,要注意redis失效的可能,毕竟还不是成熟的产品,宕机后的加载恢复也可能漫长.
2. 用redis的网站很多,这里有一个列表
http://redis.io/topics/whos-using-redis
3. 使用memcached出色的网站是google,facebook,一些公司,几千台的memcached集群很常见.
4. 如果有想法想用redis代替memcached集群,不建议,一致性哈希的实现有待成熟,还不能像memcached集群那样动态扩容,数据规划不得不加倍小心;
5. 如果想使用redis的持久化,那么设计的时候,要注意redis失效的可能,毕竟还不是成熟的产品,宕机后的加载恢复也可能漫长.
关于Redis和Memcached的比较,Redis作者的说法是,平均到单个核上的性能,在单条数据不大的情况下,Redis会更好。
因为Redis是单线程的,只能使用一个核。而Memcached是多线程的,所以对一个实例来说,性能上肯定是Memcached占优势。
因为Redis的单线程,导致所有IO也是串行化的,当单条数据太大,IO等待会费掉时间,而不是程序本身性能或者复杂度。
因为Redis有更复杂的数据类型,所以很多操作必然会比Memcached的get set操作更耗时。
因为Redis是单线程的,只能使用一个核。而Memcached是多线程的,所以对一个实例来说,性能上肯定是Memcached占优势。
因为Redis的单线程,导致所有IO也是串行化的,当单条数据太大,IO等待会费掉时间,而不是程序本身性能或者复杂度。
因为Redis有更复杂的数据类型,所以很多操作必然会比Memcached的get set操作更耗时。