Redis Cluster 是什么
Redis Cluster 是 Redis 的分布式实现,官网说明中阐述了以下几点目标:
- 高性能和线性可扩展性高达 1000 个节点。没有代理,使用异步复制,不对值执行合并操作。
- 可接受的写入安全程度:系统尝试(以最大努力的方式)保留所有来自与大多数主节点连接的客户端的写入。通常有一些小窗口,其中确认的写入可能会丢失。当客户端位于少数分区中时,丢失已确认写入的窗口更大。
- 可用性:Redis 集群能够在大多数主节点可访问的分区中存活下来,并且每个不再可访问的主节点至少有一个可访问
环境
centos7.5,Redis5.0.0
Redis 下载后安装在合适的目录,我是安装在/usr/local/Redis-5.0.0下,过程比较简单,就不赘述了。【官网提及3.0之后的版本即可支持集群操作】
配置
同级下新建cluster文件夹,拷贝 redis.conf 文件进来,copy 4个文件Redis_2001.conf、Redis_2002.conf、Redis_2003.conf、Redis_2004.conf,修改对应配置,主要是端口,节点配置 rdb aof 等。
可参考配置如下:
# 端口号 |
启动
根据上述配置文件依次启动Redis进程
redis-server cluster/Redis-2001.conf |
启动完成后,照着某个文章说明连接构建Redis集群:
./Redis-trib.rb create –replicas 1 127.0.0.1:2001 127.0.0.1:2002 127.0.0.1:2003 127.0.0.1:2004
抛出警告:
WARNING: Redis-trib.rb is not longer available!
查看文档发现:Redis 5.0彻底抛弃了ruby【优先看官方文档,优先看官方文档,优先看官方文档】
You should use redis-cli instead.
行,换redis-cli:
redis-cli –cluster create 127.0.0.1:2001 127.0.0.1:2002 127.0.0.1:2003 127.0.0.1:2004 –cluster-replicas 1
又有错误,输出如下:
*** ERROR: Invalid configuration for cluster creation. |
因为是单机测试而已,去掉复制,至少6个节点 我们先忽略。
Redis-cli –cluster create 127.0.0.1:2001 127.0.0.1:2002 127.0.0.1:2003 127.0.0.1:2004
然后有个保存配置的确认,yes之后启动成功!
[OK] All nodes agree about slots configuration. |
进入客户端
redis-cli -p 2001
查看节点:
cluster nodes
90a734c7716a00060584acb82cb3dd7e437a5459 127.0.0.1:2003@12003 master - 0 1541042930063 3 connected 8192-12287 |
可以看出集群已搭建成功!你可以进行测试了。
当然需要说明的是,这只是我们自己测试用,产线上还是需要开启复制,且按需配置节点,至少 6 个,不然叫啥高可用,还不如单机使用。