Redis高可用-集群部署

redis配置

Redis集群需要至少3个主节点,为保证数据的完整性每个主节点至少需要一个从节点,所以至少需要准备6Redis服务

建议将redis注册为系统服务并设置自启动,服务注册命令为:

Plain 复制代码
redis-server --service-install redis.windows.conf --service-name redis6379 --loglevel verbose

分别修改 redis.windows.config 中以下配置:

Plain 复制代码
bind 127.0.0.1                               // ip地址
port 6379                                    // 端口
logfile "redis79.log"                        // 日志文件名称

cluster-enabled yes                          // 开启集群支持
cluster-config-file nodes-6379.conf          // 集群配置文件名称
cluster-node-timeout 15000                   // 集群节点超时时间 ms 

启动所有Redis服务后,在任一Redis目录下执行创建集群命令,副本数为1,会自动生成三主三从节点:

Plain 复制代码
redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1

代码示例

Java 复制代码
public static void main(String[] args) {

    // 集群节点信息
    Set<HostAndPort> nodes = new HashSet<>();
    nodes.add(new HostAndPort("127.0.0.1", 6379));
    nodes.add(new HostAndPort("127.0.0.1", 6380));
    nodes.add(new HostAndPort("127.0.0.1", 6381));
    nodes.add(new HostAndPort("127.0.0.1", 6382));
    nodes.add(new HostAndPort("127.0.0.1", 6383));
    nodes.add(new HostAndPort("127.0.0.1", 6384));

    // 连接池配置
    JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
    jedisPoolConfig.setMaxTotal(10);
    jedisPoolConfig.setMaxIdle(5);
    jedisPoolConfig.setMinIdle(1);

    // 初始化集群对象,全局唯一
    JedisCluster cluster = new JedisCluster(nodes, jedisPoolConfig);

    // 执行命令
    cluster.set("key1", "1");
    cluster.set("key12", "12");
    cluster.set("key123", "123");
    cluster.set("key1234", "1234");
    cluster.set("key12345", "12345");
    cluster.set("key123456", "123456");
    cluster.set("key1234567", "1234567");
    cluster.set("key12345678", "12345678");
    cluster.set("key123456789", "123456789");

    cluster.close();
}

添加的9key,分布在不同节点上

相关推荐
希忘auto1 小时前
详解Redis的常用命令
redis·1024程序员节
岁月变迁呀8 小时前
Redis梳理
数据库·redis·缓存
Code apprenticeship10 小时前
怎么利用Redis实现延时队列?
数据库·redis·缓存
百度智能云技术站10 小时前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle
装不满的克莱因瓶10 小时前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb
黄名富14 小时前
Redis 附加功能(二)— 自动过期、流水线与事务及Lua脚本
java·数据库·redis·lua
G_whang14 小时前
centos7下docker 容器实现redis主从同步
redis·docker·容器
.生产的驴15 小时前
SpringBoot 对接第三方登录 手机号登录 手机号验证 微信小程序登录 结合Redis SaToken
java·spring boot·redis·后端·缓存·微信小程序·maven
我叫啥都行18 小时前
计算机基础复习12.22
java·jvm·redis·后端·mysql
阿乾之铭18 小时前
Redis四种模式在Spring Boot框架下的配置
redis