Linux Redis集群安装
2016-07-04 16:31
537 查看
Linux Redis集群安装
软件版本:redis-3.0.7,必须使用该稳定版本否则会错各种问题
IP地址:
节点1:192.168.1.101:7000 主节点
节点2:192.168.1.101:7001 从节点
节点3:192.168.1.102:7002 主节点
节点4:192.168.1.102:7003 从节点
节点5:192.168.1.103:7004 主节点
节点6:192.168.1.103:7005 从节点
Redis安装(六个节点)
1:安装相关编译的依赖包
# yum -y install gcc make
2:安装redis(六个节点)
软件上传到/opt目录
# cd /opt/
# tar -zxvf redis-3.0.7.tar.gz
# mv redis-3.0.7/ redis/
# cd redis/
# make && make install
1、下载redis稳定版本:redis-3.0.7
2、保证节点机器之间能够两两免密码登陆
3、在node1 、node2、node3 上分别安装2个redis
目录如下:
node1 7000 /opt/redis
node1 7001 /opt/soft/redis
node2 7002 /opt/redis
node2 7003 /opt/soft/redis
node3 7004 /opt/redis
node3 7005 /opt/soft/redis
(1)安装相关编译的依赖包
# yum -y install gcc make
(2)安装redis(六个节点)
软件上传到/opt目录
# cd /opt/
# tar -zxvf redis-3.0.7.tar.gz
# mv redis-3.0.7/ redis/
# cd redis/
# make && make install
4、修改每一台redis的redis.conf文件,必须修改端口
port 7000
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
appendonly yes
port 7001
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000
appendonly yes
port 7002
cluster-enabled yes
cluster-config-file nodes-7002.conf
cluster-node-timeout 5000
appendonly yes
port 7003
cluster-enabled yes
cluster-config-file nodes-7003.conf
cluster-node-timeout 5000
appendonly yes -----》官方推荐使用appendonly yes,
但是现实生活中,我们需要使用appendfsync everysec,原因
是3.0版本后每秒写入一次,做了优化!!
port 7004
cluster-enabled yes
cluster-config-file nodes-7004.conf
cluster-node-timeout 5000
appendonly yes
port 7005
cluster-enabled yes
cluster-config-file nodes-7005.conf
cluster-node-timeout 5000
appendonly yes
5、在每个redis机器上分别创建一个文件夹cluster-test,
然后进入cluster-test,再创建一个文件夹名称以端口号命名的文件夹
mkdir cluster-test
cd cluster-test
mkdir 7000
mkdir cluster-test
cd cluster-test
mkdir 7001
mkdir cluster-test
cd cluster-test
mkdir 7002
mkdir cluster-test
cd cluster-test
mkdir 7003
mkdir cluster-test
cd cluster-test
mkdir 7004
mkdir cluster-test
cd cluster-test
mkdir 7005
6、在目录cluster-test下各创建一个redis.conf 文件, 文件的内容可以使用上面修改好的redis.conf配置文件,
但记得将配置中的端口号从7000改为与文件夹名字相同的号码
分别进入cluster-test目录下启动各个节点,注意:这里的redis.conf文件,一定要是上面刚刚修改好的文件(即cluster-test目录下的文件)
cd 7000
../redis-server ./redis.conf
cd 7001
../redis-server ./redis.conf
cd 7002
../redis-server ./redis.conf
cd 7003
../redis-server ./redis.conf
cd 7004
../redis-server ./redis.conf
cd 7005
../redis-server ./redis.conf
如果正常,则会打印如下日志:
[82462] 26 Nov 11:56:55.329 * No cluster configuration found, I'm 全局唯一的id
7、进入任意一个机器,安装ruby的环境
#yum install ruby -y
#yum install rubygems -y
8、进入上述机器的redis的src目录下,安装
#gem install redis
9、创建集群,在node1的 7001节点的src目录下执行
./redis-trib.rb create --replicas 1 192.168.1.101:7000 192.168.1.101:7001 192.168.1.102:7002 192.168.1.102:7003 192.168.1.103:7004 192.168.1.103:7005
[OK] All 16384 slots covered
这表示集群中的 16384 个槽都有至少一个主节点在处理, 集群运作正常。
集群创建成功
10、进入node1开始测试
#redis-cli -c -p 7000(注意:如果报错,说明7000所在节点不是master,所以换一个节点即可,7001)
127.0.0.1:7000> set 3432 123
OK
11、编写java 代码,jedis分片测试:
public static void main(String[] args) {
Set<HostAndPort> jedisClusterNodes=new HashSet<HostAndPort>();
jedisClusterNodes.add(new HostAndPort("node1",7000));
jedisClusterNodes.add(new HostAndPort("node1",7001));
jedisClusterNodes.add(new HostAndPort("node2",7002));
jedisClusterNodes.add(new HostAndPort("node2",7003));
jedisClusterNodes.add(new HostAndPort("node3",7004));
jedisClusterNodes.add(new HostAndPort("node3",7005));
JedisCluster jc=new JedisCluster(jedisClusterNodes);
String key=String.valueOf(new Random().nextInt(368391));
int value=new Random().nextInt(238239);
jc.set(key,String.valueOf(value));
String valu=jc.get(key);
System.out.println("结果:"+valu);
}
默认7000 7002 7004 最先启动,则是主节点
测试故障转移时,kill 掉其中一个主节点,那么对应得从节点马上变为主节点!!
仍然执行以上代码时,也是正常的!!
12、停止集群
在node1节点上的/opt/redis目录下执行:
#./src/redis-cli -c -p 7000 shutdown
#./src/redis-cli -c -p 7001 shutdown
在node3节点上的/opt/redis目录下执行:
#./src/redis-cli -c -p 7000 shutdown
#./src/redis-cli -c -p 7001 shutdown
在node3节点上的/opt/redis目录下执行:
#./src/redis-cli -c -p 7000 shutdown
#./src/redis-cli -c -p 7001 shutdown
软件版本:redis-3.0.7,必须使用该稳定版本否则会错各种问题
IP地址:
节点1:192.168.1.101:7000 主节点
节点2:192.168.1.101:7001 从节点
节点3:192.168.1.102:7002 主节点
节点4:192.168.1.102:7003 从节点
节点5:192.168.1.103:7004 主节点
节点6:192.168.1.103:7005 从节点
Redis安装(六个节点)
1:安装相关编译的依赖包
# yum -y install gcc make
2:安装redis(六个节点)
软件上传到/opt目录
# cd /opt/
# tar -zxvf redis-3.0.7.tar.gz
# mv redis-3.0.7/ redis/
# cd redis/
# make && make install
1、下载redis稳定版本:redis-3.0.7
2、保证节点机器之间能够两两免密码登陆
3、在node1 、node2、node3 上分别安装2个redis
目录如下:
node1 7000 /opt/redis
node1 7001 /opt/soft/redis
node2 7002 /opt/redis
node2 7003 /opt/soft/redis
node3 7004 /opt/redis
node3 7005 /opt/soft/redis
(1)安装相关编译的依赖包
# yum -y install gcc make
(2)安装redis(六个节点)
软件上传到/opt目录
# cd /opt/
# tar -zxvf redis-3.0.7.tar.gz
# mv redis-3.0.7/ redis/
# cd redis/
# make && make install
4、修改每一台redis的redis.conf文件,必须修改端口
port 7000
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
appendonly yes
port 7001
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000
appendonly yes
port 7002
cluster-enabled yes
cluster-config-file nodes-7002.conf
cluster-node-timeout 5000
appendonly yes
port 7003
cluster-enabled yes
cluster-config-file nodes-7003.conf
cluster-node-timeout 5000
appendonly yes -----》官方推荐使用appendonly yes,
但是现实生活中,我们需要使用appendfsync everysec,原因
是3.0版本后每秒写入一次,做了优化!!
port 7004
cluster-enabled yes
cluster-config-file nodes-7004.conf
cluster-node-timeout 5000
appendonly yes
port 7005
cluster-enabled yes
cluster-config-file nodes-7005.conf
cluster-node-timeout 5000
appendonly yes
5、在每个redis机器上分别创建一个文件夹cluster-test,
然后进入cluster-test,再创建一个文件夹名称以端口号命名的文件夹
mkdir cluster-test
cd cluster-test
mkdir 7000
mkdir cluster-test
cd cluster-test
mkdir 7001
mkdir cluster-test
cd cluster-test
mkdir 7002
mkdir cluster-test
cd cluster-test
mkdir 7003
mkdir cluster-test
cd cluster-test
mkdir 7004
mkdir cluster-test
cd cluster-test
mkdir 7005
6、在目录cluster-test下各创建一个redis.conf 文件, 文件的内容可以使用上面修改好的redis.conf配置文件,
但记得将配置中的端口号从7000改为与文件夹名字相同的号码
分别进入cluster-test目录下启动各个节点,注意:这里的redis.conf文件,一定要是上面刚刚修改好的文件(即cluster-test目录下的文件)
cd 7000
../redis-server ./redis.conf
cd 7001
../redis-server ./redis.conf
cd 7002
../redis-server ./redis.conf
cd 7003
../redis-server ./redis.conf
cd 7004
../redis-server ./redis.conf
cd 7005
../redis-server ./redis.conf
如果正常,则会打印如下日志:
[82462] 26 Nov 11:56:55.329 * No cluster configuration found, I'm 全局唯一的id
7、进入任意一个机器,安装ruby的环境
#yum install ruby -y
#yum install rubygems -y
8、进入上述机器的redis的src目录下,安装
#gem install redis
9、创建集群,在node1的 7001节点的src目录下执行
./redis-trib.rb create --replicas 1 192.168.1.101:7000 192.168.1.101:7001 192.168.1.102:7002 192.168.1.102:7003 192.168.1.103:7004 192.168.1.103:7005
[OK] All 16384 slots covered
这表示集群中的 16384 个槽都有至少一个主节点在处理, 集群运作正常。
集群创建成功
10、进入node1开始测试
#redis-cli -c -p 7000(注意:如果报错,说明7000所在节点不是master,所以换一个节点即可,7001)
127.0.0.1:7000> set 3432 123
OK
11、编写java 代码,jedis分片测试:
public static void main(String[] args) {
Set<HostAndPort> jedisClusterNodes=new HashSet<HostAndPort>();
jedisClusterNodes.add(new HostAndPort("node1",7000));
jedisClusterNodes.add(new HostAndPort("node1",7001));
jedisClusterNodes.add(new HostAndPort("node2",7002));
jedisClusterNodes.add(new HostAndPort("node2",7003));
jedisClusterNodes.add(new HostAndPort("node3",7004));
jedisClusterNodes.add(new HostAndPort("node3",7005));
JedisCluster jc=new JedisCluster(jedisClusterNodes);
String key=String.valueOf(new Random().nextInt(368391));
int value=new Random().nextInt(238239);
jc.set(key,String.valueOf(value));
String valu=jc.get(key);
System.out.println("结果:"+valu);
}
默认7000 7002 7004 最先启动,则是主节点
测试故障转移时,kill 掉其中一个主节点,那么对应得从节点马上变为主节点!!
仍然执行以上代码时,也是正常的!!
12、停止集群
在node1节点上的/opt/redis目录下执行:
#./src/redis-cli -c -p 7000 shutdown
#./src/redis-cli -c -p 7001 shutdown
在node3节点上的/opt/redis目录下执行:
#./src/redis-cli -c -p 7000 shutdown
#./src/redis-cli -c -p 7001 shutdown
在node3节点上的/opt/redis目录下执行:
#./src/redis-cli -c -p 7000 shutdown
#./src/redis-cli -c -p 7001 shutdown
相关文章推荐
- Linux Redis副本集安装(redis-3.0.7)
- redis队列的安装与配置,还有一些安全方面的配置
- 非关系型数据库redis(三):Redis数据类型
- Centos6.5搭建Redis集群
- Redis学习笔记01--NoSQL/Redis概述
- 安装phpredis模块
- redis —— 第一篇 开始入手
- redis 存储对象
- spring-boot-data-redis线程池配置
- Redis-sentinel哨兵模式集群方案配置
- Redis安装+主从配置 过程中 的几个小 Tips
- redis的单实例配置+web链接redis
- Redis使用工具类
- webpy save session to redis
- redis视频学习笔记-1
- redis.conf配置文件详解
- redis实现附近的人,但jedis中没有相关api,那么直接使用lua脚本执行。
- Redis 主从同步配置
- Redis AOF 全持久化
- 非关系型数据库redis(二):Redis配置