Redis集群简述
本篇文章对Redis集群做一个简单的了解,并介绍如何快速部署一套Redis集群,测试以及操作集群,对Redis的深入介绍将会留在下一篇文章.
这里需要注意的是,Redis集群是在Redis Version 3.0新推出的功能,老的版本并不支持.
Redis集群提供了一种数据会自动切片到多个节点上的部署方式,想象一张表,假设这张表有一亿行数据,那么切片相当于将该表分成N份,每一个节点都保存该表的数据的1/N,Redis的切片就是将数据切割分散到集群中各个节点中,每个节点都会维护Redis数据中的一部分,每个节点都是不可分割的.
Redis集群同时也提供了在部分集群节点故障时集群的可靠性,这也意味着在集群部分节点宕机后集群仍然可以正常提供服务,然而这也不代表集群是一劳永逸的,因为一旦大规模的集群宕机发生后,例如机柜断电跳闸等,集群依旧会出现服务不可用的现象.
综上所述,Redis集群主要提供以下功能:
- 自动将数据切片并分散到多个集群节点.
- 集群中部分节点宕机后不影响集群正常提供服务.
Redis集群TCP端口号
Redis集群中的每个节点需要两个tcp端口,一个是6379,该端口主要服务于客户端的连接,另一个端口是16379,即在服务客户端的端口号默认加10000,如TCP5000端口号用来服务客户端,那么另外一个端口就是TCP15000.
第二个端口号用来实现集群的bus功能,bus的意思是集群所有节点都是通过该端口来,就像一根总线将各个节点串起来一样,Redis bus是一种通过二进制协议点到点的通道,集群节点通过Redis bus进行故障探测,配置更新,故障转移授权等等.客户端不会尝试连接该bus端口.
Redis数据分片
Redis集群不使用一致性哈希,而是不同形式的分片,这可