redis集群搭建

redis集群搭建



名词:
redis是REmote DIctionary Server的缩写
环境:
redis-4.0.9
centOS7

配置文件

找到redis安装目录下的redis..conf模板配置文件,复制出来作为集群节点的配置文件,修改其中的配置参数。
部分参数如下:

参数描述
port7000节点的端口
daemonizeyes设置启动线程为后台线程
cluster-enabledyes开启集群
cluster-config-filenodes.conf这里只是配置一个虚拟的文件名称而已,节点在启动时会创建这个文件,用于节点的配置
cluster-node-timeout5000节点失效的超时时间。如果在这个时间内没收到节点的信息,则表示节点失效。单位毫秒
cluster-require-full-coverageno槽点全覆盖。如果设置为’yes’,只要有结点宕机导致16384个槽没全被覆盖,整个集群就全部停止服务。
appendonlyyes记录命令日志。将命令保存在日志文件aof中,实现故障恢复,弥补发生故障时数据丢失的风险。
bind127.0.0.1 192.168.1.12绑定主机。可以绑定多个主机,用空格分开ip地址。在创建集群时,切记不能使用127.0.0.1作为创建节点的主机地址,否者会导致其他主机访问时,出现获取不到资源的错误[ERR can not get a resource],用主机的网络IP地址即可。

启动节点

假定 redis 集群预计使用6个节点(3主3从),且安装在一台服务器上,则至少需要6个端口。
1. 新建集群目录

$ mkdir clsuter

2. 新建6个子目录,以端口号作为目录名称,启动节点时从此目录下启动节点。因为节点启动过后,会在启动目录下创建几个文件,独有于此节点。另每个节点都有一个自己的启动配置文件redis.conf,也可以放在这个端口目录下。

$ mkdir cluster/7000
$ mkdir cluster/7001
$ mkdir cluster/7002
$ mkdir cluster/7003
$ mkdir cluster/7004
$ mkdir cluster/7005

3. 启动节点,每个节点下的配置文件都是相同的命名redis.conf

$ src/redis-server ../../cluster/7000/redis.conf
$ src/redis-server ../../cluster/7001/redis.conf
$ src/redis-server ../../cluster/7002/redis.conf
$ src/redis-server ../../cluster/7003/redis.conf
$ src/redis-server ../../cluster/7004/redis.conf
$ src/redis-server ../../cluster/7005/redis.conf

4. 查看节点是否启动成功,输出后面有[cluster]表示启动的是集群节点

$ ps -ef | grep 'cluster'

5. 安装gem(如果没有安装的话),在线安装方法:

$ yum install gem

可能提示需要更高版本的gem:

$ gem update --system

6. 创建集群,replcas 1 表示每个主节点创建一个从节点,redis自动分配主从节点。

$ src/redis-trib.rb create --replicas 1 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

当提示‘[ERR] Sorry, can’t connect to node 127.0.0.1:7000’时,可能由于配置文件中设置了密码所至,去掉密码即可。

查看主从节点是否关联上:

$ src/redis-cli -h 127.0.0.1 -p 7000 cluster nodes

这时便可进入任一节点验证是否进行了数据分发,进入集群节点时,需要加上-c选项:

$ src/redis-cli -c -p 7000


集群命令

以下是部分集群的命令,在客户端执行:

命令描述
CLUSTER NODES打印出集群所有节点的状态视图。包括与每个节点的连接状态,每个节点的标记位(flags),属性和已经分配的哈希槽等等。
CLUSTER INFO使用 INFO 风格的形式展现了关于Redis集群的重要参数。
DEBUG SEGFAULT崩溃。使服务器崩溃,用于崩溃测试。
DBSIZE返回当前数据库中key的数量。
FLUSHDB清空当前数据库
FLUSHALL清空所有数据库
INFO获取服务器的信息。后面加参数all,返回所有信息。
SHUTDOWN关闭服务

引用

  1. [Redis 集群教程]
  2. [全面剖析Redis Cluster原理和应用]
  3. [redis菜鸟教程]
  4. [redis几个认识误区]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值