Redis和Memcache比较
Redis是单进程单线程模式, 采用I/O多路复用
Memcached 采用 多线程模型,采用非阻塞I/O
1 、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。memcache支持简单的数据类型,String。
2 、Redis支持数据的备份,即master-slave模式的数据备份。
3 、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用,而Memecache把数据全部存在内存之中
4、 redis的速度比memcached快很多
5、Memcached是多线程,非阻塞IO复用的网络模型;Redis使用单线程的IO复用模型。
Redis多机功能
到目前为止,本课程介绍的所有内容都是以单机 Redis 为背景的,也即是,我们考虑的事情只和一台Redis 服务器有关。但是在生产环境中实际地使用 Redis 的时候,只使用一台 Redis 服务器一般来说是没办法满足我们的需求的,限制主要来自于两个方面:
- 内存容量不足:Redis 使用内存来存储数据库中数据,但是对于一台机器来说,硬件的内存容量是有限的,当我们需要存储的数据量超过机器的内存容量时,一台服务器就没有办法满足我们的要求了
例子:要储存 128 GB 数据,但机器最大只支持 64 GB 内存;要储存 1 TB 数据,但机器最大只支持 128 GB 内存;诸如此类。
- 处理能力不足:和内存数量限制类似,因为服务器硬件的限制(包括机器配置和网络资源),一台服务器能处理的命令请求数量也是有限的,当我们需要处理的命令请求数量超过机器能够处理的命令请求时,一台服务器就没办法满足我们的要求了。
Redis 提供的多机功能包括:
复制(replication),扩展系统处理读请求的能力;
Sentinel(哨兵),为系统提供高可用特性,减少故障停机出现;
集群(cluster),扩展系统的数据库容量以及系统处理读写请求的能力,并 提供高可用特性;