1首先安装tcl
wgethttp://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
sudo tar xzvf tcl8.6.1-src.tar.gz
cd tcl8.6.1/unix/
sudo ./configure
sudo make
sudo make install
要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下
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
2 安装redis
tar -zxvf redis.tar.gz
cd redis
make
make install
3 创建集群需要的目录
在reids目录创建
mkdir cluster
cd cluster
mkdir 7000
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005
4 拷贝redis安装目录下的redis.conf并改配置文件中的下面选项
port 7000
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
修改完redis.conf配置文件中的这些配置项之后把这个配置文件分别拷贝到redis/cluster下的7000/7001/7002/7003/7004/7005目录下面
5 启动redis
先进入redis目录
./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
6 安装ruby
yum install ruby
yum install rubygems
gem install redis
7 启动
./src/redis-trib.rb create --replicas 1127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004127.0.0.1:7005
replicas 1 表示每个主节点下有一个从节点
8 测试
使用redis-cli命令进入集群环境
redis-cli -c -p 7000
9 Java测试
java代码
package com.cct.jedis;
import java.util.HashSet; import java.util.Set;
import redis.clients.jedis.HostAndPort; import redis.clients.jedis.JedisCluster;
publicclass App { publicstaticvoid main( String[] args ) { Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>(); jedisClusterNodes.add(new HostAndPort("192.168.1.54", 7000)); jedisClusterNodes.add(new HostAndPort("192.168.1.54", 7001)); jedisClusterNodes.add(new HostAndPort("192.168.1.54", 7002)); jedisClusterNodes.add(new HostAndPort("192.168.1.54", 7003)); jedisClusterNodes.add(new HostAndPort("192.168.1.54", 7004)); jedisClusterNodes.add(new HostAndPort("192.168.1.54", 7005)); JedisCluster jc = new JedisCluster(jedisClusterNodes,5000,1000); jc.set("foo", "bar"); String value = jc.get("foo"); System.out.println("foo is "+value); } } |
Pom.xml
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.2</version> </dependency> |