1、下载Redis:http://redis.io/download
wget https://download.redis.io/releases/redis-6.2.4.tar.gz
2、解压Redis:
tar -zxvf redis-6.2.4.tar.gz
3、切换到解压目录:
cd redis-6.2.4
4、安装依赖环境:
yum install gcc
5、编译安装:
make
6、创建配置文件存放目录
mkdir -p /usr/local/redis-cluster/8001
mkdir -p /usr/local/redis-cluster/8002
mkdir -p /usr/local/redis-cluster/8003
mkdir -p /usr/local/redis-cluster/8004
mkdir -p /usr/local/redis-cluster/8005
mkdir -p /usr/local/redis-cluster/8006
7、复制redis.con到配置文件目录下,修改配置(端口号对应修改)
daemonize yes
port 8001
#指定数据文件存放位置
dir /usr/local/redis-cluster/8001/
#启动集群模式
cluster-enabled yes
#集群节点信息文件
cluster-config-file nodes-8001.conf
cluster-node-timeout 5000
bind 0.0.0.0
#关闭保护模式
protected-mode no
appendonly yes
8、启动各个节点
src/redis-server /usr/local/redis-cluster/8001/redis.conf
src/redis-server /usr/local/redis-cluster/8002/redis.conf
src/redis-server /usr/local/redis-cluster/8003/redis.conf
src/redis-server /usr/local/redis-cluster/8004/redis.conf
src/redis-server /usr/local/redis-cluster/8005/redis.conf
src/redis-server /usr/local/redis-cluster/8006/redis.conf
9、创建集群
src/redis-cli --cluster create --cluster-replicas 1 192.168.229.128:8001 192.168.229.128:8002 192.168.229.128:8003 192.168.229.128:8004 192.168.229.128:8005 192.168.229.128:8006
输入yes确认创建
Can I set the above configuration? (type 'yes' to accept): yes
10、进入某个节点(-c 以集群模式访问)
src/redis-cli -c -h 127.0.0.1 -p 8001
11、查看节点信息
127.0.0.1:8001> CLUSTER NODES
12、测试
依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
代码
package com.example;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;
import java.util.HashSet;
import java.util.Set;
/**
* 三主三从集群
*/
public class JedisClusterTest {
public static void main(String[] args) {
JedisPoolConfig config = new JedisPoolConfig();
Set<HostAndPort> clusterNodes = new HashSet<>();
clusterNodes.add(new HostAndPort("192.168.229.128", 8001));
clusterNodes.add(new HostAndPort("192.168.229.128", 8002));
clusterNodes.add(new HostAndPort("192.168.229.128", 8003));
clusterNodes.add(new HostAndPort("192.168.229.128", 8004));
clusterNodes.add(new HostAndPort("192.168.229.128", 8005));
clusterNodes.add(new HostAndPort("192.168.229.128", 8006));
try (JedisCluster jedisCluster = new JedisCluster(clusterNodes, 6000, 5000, 10, config)) {
//nx:not exists, 只有key 不存在时才把key value set 到redis
//xx:is exists ,只有 key 存在是,才把key value set 到redis
//ex:seconds 秒
//px:milliseconds 毫秒
System.out.println(jedisCluster.set("test", "123", "nx", "px", 10000));
System.out.println(jedisCluster.get("test"));
} catch (Exception e) {
e.printStackTrace();
}
}
}