Redis Cluster学习笔记(2)

g).该节点的从节点数量。

如果该节点是从节点的话,那么它会记录主节点的节点 ID 。 如果这是一个主节点的话,那么主节点 ID 这一栏的值为 0000000。

在了解Redis Cluster的集群基本特征后,我们首先搭建出这个Redis Cluster集群。

3. 安装Redis 3.0.x

当前最新版为3.0.1

wget http://download.redis.io/releases/redis-3.0.1.tar.gz tar xvzf redis-3.0.1.tar.gz cd redis-3.0.1/ make -j #apt-get install tcl make test ###将redis安装到/usr/local/redis3上 #cd src && make PREFIX=/usr/local/redis3 install ###创建符号链接 #ls /usr/local/redis3/bin/redis-* /usr/local/redis3/bin/redis-benchmark /usr/local/redis3/bin/redis-check-dump /usr/local/redis3/bin/redis-sentinel /usr/local/redis3/bin/redis-check-aof /usr/local/redis3/bin/redis-cli /usr/local/redis3/bin/redis-server #for i in `cd /usr/local/redis3/bin; ls redis-*` do ln -s /usr/local/redis3/bin/$i /usr/local/bin/$i done; #mkdir -p /usr/local/redis3/conf #ln -sf /usr/local/redis3/conf /etc/redis3 ###检查版本信息 redis-cli -v redis-cli 3.0.1

4. Redis Cluster配置

运行在集群模式的Redis实例与普通的Redis实例有所不同,集群模式需要通过配置启用cluster特性,开启集群模式后的Redis实例便可以使用集群特有的命令和特性了.下面是一个最少选项的集群的配置文件 : 注意如果使用的是单机测试,最好把cluster-config-file nodes.conf设置为对应的 端口 nodes-xxx.conf,还有就是 pid 设置为当前 目录下 pidfile ./redis.pid

port 7001 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes

文件中的 cluster-enabled 选项用于开实例的集群模式, 而 cluster-conf-file 选项则设定了保存节点配置文件的路径, 默认值为 nodes.conf。该节点配置文件无须人为修改,它由Redis集群在启动时自动创建, 并在有需要时自动进行更新。

若要让集群正常运作至少需要三个主节点,我们的环境中,每个主节点附带一个从节点,所以一共六个节点。端口为7001-7006。

在/app/redis3, 并创建六个以端口号为名字的子目录, 稍后我们在将每个目录中运行一个 Redis 实例:

cd /app/redis3 mkdir 7001 7002 7003 7004 7005 7006 cp /etc/redis3/conf/redis.conf /app/redis3/7001/ ...... cp /etc/redis3/conf/redis.conf /app/redis3/7006/

将redis.conf里的端口号修改为对应的端口。下面我们打开对应的目录,启动redis实例即可,启动的时候要进入到对应的目录然后启动。

cd /app/redis3/7001;nohup redis-server redis.conf & cd /app/redis3/7002;nohup redis-server redis.conf & ......

实例打印的日志显示, 因为 nodes.conf 文件不存在, 所以每个节点都为它自身指定了一个新的 ID ,

/app/redis3/7006# tail -f nohup.out 27040:M 09 May 22:53:50.197 * No cluster configuration found, I'm 1984c27297c6ef50bbfcbd35c11b93cc40ba17e4 /app/redis3/7006# cat nodes.conf d2b437ca8b9007dcdb63ac16210f6540860361e3 :0 myself,master - 0 0 0 connected vars currentEpoch 0 lastVoteEpoch 0

现在我们已经有了六个正在运行中的 Redis 实例, 接下来我们需要使用这些实例来创建集群。通过使用 Redis 集群命令行工具 redis-trib , 编写节点配置文件的工作可以非常容易地完成: redis-trib 位于 Redis 源码的 src 文件夹中, 它是一个 Ruby 程序, 这个程序通过向实例发送特殊命令来完成创建新集群, 检查集群, 或者对集群进行重新分片(reshared)等工作。这里通过create命令来创建集群,指定replicas=1,即每一个主实例有一个从实例。redis-trib 会打印出一份预想中的配置给你看, 如果你觉得没问题的话, 就可以输入 yes , redis-trib 就会将这份配置应用到集群当中,让各个节点开始互相通讯,最后可以得到如下信息

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a0d2c0f1550ef795a4a45794555f4265.html