redis集群搭建

redis集群搭建


  • redis集群搭建
    • 配置文件
    • 启动节点
    • 集群命令
    • 引用


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

配置文件

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

参数 描述
port 7000 节点的端口
daemonize yes 设置启动线程为后台线程
cluster-enabled yes 开启集群
cluster-config-file nodes.conf 这里只是配置一个虚拟的文件名称而已,节点在启动时会创建这个文件,用于节点的配置
cluster-node-timeout 5000 节点失效的超时时间。如果在这个时间内没收到节点的信息,则表示节点失效。单位毫秒
cluster-require-full-coverage no 槽点全覆盖。如果设置为’yes’,只要有结点宕机导致16384个槽没全被覆盖,整个集群就全部停止服务。
appendonly yes 记录命令日志。将命令保存在日志文件aof中,实现故障恢复,弥补发生故障时数据丢失的风险。
bind 127.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几个认识误区]

你可能感兴趣的:(db)