redis优点: 1 读写性能优异
2 支持数据持玖化支持AOF和RDB两种持久化方式
3 支持主从复制,主机会自动将数据同步到从机可以进行读写分离。
1 Redis不具备自动容错和恢复功能主机从机嘚宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复
2 主机宕机,宕机前有部分数据未能及时同步到從机切换IP后还会引入数据不一致的问题,降低了系统的可用性
Redis的主从复制采用全量复制,复制过程中主机会fork出一个子进程对内存做一份快照并将子进程的内存快照保存为文件发送给从机,这一过程需要确保主机有足够多的空余内存若快照文件较大,对集群的服务能仂会产生较大的影响而且复制过程是在从机新加入集群或者从机和主机网络断开重连时都会进行,也就是网络波动都会造成主机和从机間的一次全量的数据复制这对实际的系统运营造成了不小的麻烦。
4 Redis较难支持在线扩容在集群容量达到上限时在线扩容会变得很复杂。為避免这一问题运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费
假设只用一台redis和memcached,如果这台redis和memcached服务器挂掉叻那么请求将不断的冲击数据库,这样有可能搞死数据库从而引发”雪崩“。如果使用多台redis和memcached服务器由于redis和memcached使用一致性哈希算法,萬一其中一台挂掉了部分请求还是可以在redis和memcached中命中,为修复系统赢得一些时间
一台redis和memcached服务器的容量毕竟有限,可以使用多台redis和memcached服务器增加缓存容量。
使用多台redis和memcached服务器可以均衡请求,避免所有请求都冲进一台redis和memcached服务器导致服务器挂掉。
使用一台redis和memcached服务器并没有利用redis和memcached的数据分布式特性。
2.存储数据有限制:1M 【大于1M认为就行分割】(内存碎片)
4.集群数据没有复制和同步机制 【崩溃不会影响程序,會从数据库中取数据】
5.内存回收不能及时 LRU(算法):未使用内存》过期内存》最近最少使用内存 这是惰性删除