1、Redis单副本
缓存使用时无需备用节点,同一时刻只有一个实例对外提供服务。不保证数据的可靠性。
2、Redis多副本(主从)
对比单副本最大特点是主从实例间数据实时同步,并且提供数据持久性和备份策略。根据公司配置,可以实现同时对外提供服务和读写分离策略。
优点:一主多从,以非阻塞方式完成数据同步。分散服务压力,实现读写分离。从服务器之间可互相同步请求,减少主服务压力
缺点:不具备容错和恢复能力,主服务存在单点风险。较难支持在线扩容
3、Redis Sentinel(哨兵)
部署架构主要包括Redis Sentinel(节点满足2n+1,n>=1)集群和Redis数据集群,可以实现故障发现、故障自动转移、配置中心和客户端通知。
优点:通过心跳机制和投票裁决完成主从主动切换
缺点:难以在线扩容
4、Redis Cluster
最小配置6个节点以上(3主3从),无中心架构,采用虚拟槽分区,所有的键根据哈希函数映射到0~16383个整数槽内,每个节点负责维护一部分槽以及槽所映射的键值数据。
优点:去中心化,所有物理节点映射在(0~16384)slot上,Redis Cluster负责维护节点、桶、值之间关系。节点可动态增删。使用端连接任何一个可用节点即可。
缺点:批量操作(mget、mset)支持有限。事务支持有限
redis能存多少数据?
redis能处理2^32个key,单实例至少能处理2.5亿个key
key或value最大是512M。
Strings类型:一个String类型的value最大可以存储512M
Lists类型:list的元素个数最多为2^32-1个,也就是4294967295个。
Sets类型:元素个数最多为2^32-1个,也就是4294967295个。
Hashes类型:键值对个数最多为2^32-1个,也就是4294967295个。
Sorted sets类型:跟Sets类型相似。