redis集群
Redis 集群是一个提供在多个Redis间节点间共享数据的程序集。
Redis 集群没有使用一致性hash, 而是引入了哈希槽的概念。
要让集群正常运作至少需要三个主节点,不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三个为主节点, 而其余三个则是各个主节点的从节点。
首先, 让我们进入一个新目录, 并创建六个以端口号为名字的子目录, 稍后我们在将每个目录中运行一个 Redis 实例: 命令如下:
1、创建文件夹
mkdir redis-cluster-test
2、进入文件夹
cd redis-cluster-test
3、创建配置文件夹
mkdir 7000 7001 7002 7003 7004 7005
4、编写配置文件(最基础的配置)
文件名:redis-7000.conf
文件内容:
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
文件中的 cluster-enabled 选项用于开实例的集群模式, 而 cluster-conf-file 选项则设定了保存节点配置文件的路径, 默认值为nodes.conf节点配置文件无须人为修改, 它由 Redis 集群在启动时创建, 并在有需要时自动进行更新。
复制五份,一一将其端口号和文件名改为7001 7002 7003 7004 7005,并分别放置在不同文件夹里。
5、将redis源码src目录下的redis-cli和redis-server拷贝到redis-cluster-test目录下
6、启动redis节点
进入到7000目录下,输入命令行:…/redis-server redis.conf(配置文件名),其余节点依次开启。
此时集群还不可用
redis-cli -p 7000
set hello world
(error)CLUSTERDOWN The cluster is down
# 提示槽位没有分配
7、开启集群模式
redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1
-replicas 表示进行身份授权
1 表示每个主节点,只有一个从节点
集群会自动分配主从关系
7000、7001、7002为主服务器master
7003、7004、7005为从服务器slave
从redis5.0开始,建议使用redis-cli作为创建集群的命令,不推荐再使用redis-trib.rb来创建集群了,毕竟使用redis-trib.rb还要安装Ruby程序,比redis-cli麻烦的多。
8、登录客户端
redis-cli -p 7000 -c
redis客户端任意访问一个redis实例,如果数据不在该实例中,通过重定向引导客户端访问所需要的redis实例
到这里基本就完成了。
9、查看集群状态
redis-cli -p 7000 cluster info
进入命令行,两条redis集群基本命令:
1.查看当前集群信息
cluster info
2.查看集群里有多少个节点
cluster nodes