• Jedis连接redis


    今天与大家分享下,Jedis连接池使用。先看一段JAVA 代码:

            JedisPoolConfig config = new JedisPoolConfig();
            config.setMaxIdle(100);
    
            JedisPool pool = new JedisPool(config, "ip地址", 6379);
            return pool.getResource();

    这段代码是最简单连接redis的连接池代码,单机连接,存在单点故障。不过也看这个IP是否是VIP, redis可以做成HA模式。架构如下图:

    redis 两台服务器,通过专业的HA软件实现主从管理,对外通过VIP提供服务,但主机宕机,HA会切换到从机运行,同时改变从机的角色为: master.。 这种架构不适合做读写分离,只有一台机器ONLINE 状态。

    Redis 分片架构,先看图。典型的分片架构如下图:

    该架构适合做并发较高,访问量大,如果采用jedis连接,可以实现Hash 一致性数据分布。具体代码如下:

    		JedisPoolConfig config = new JedisPoolConfig();
    
    		List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
    		shards.add(new JedisShardInfo("10.20.15.236", 6379));
    		shards.add(new JedisShardInfo("10.20.15.236", 6380));
    		
    		// 构造池
    		ShardedJedisPool shardedJedisPool = new ShardedJedisPool(config, shards);
    		ShardedJedis shardedJedis = shardedJedisPool.getResource();

    Redis 哨兵机制

    Redis本身提供一种HA方式,直接上图:

    在服务器上启动多个哨兵进程,通过哨兵进程监控MASTER节点,当master节点宕机 , Sentinel 进程就会切换到从机。

    Sentinel 进程的配置文件如下: 

    bind 10.20.15.236
    port 7000
    
    dir "/var/work/redis/tmp"
    
    sentinel myid 466427b54fe410637a35b60ee3fbf995411b71da
    sentinel monitor mymaster 10.20.15.241 6379 1
    sentinel down-after-milliseconds mymaster 5000
    sentinel failover-timeout mymaster 150
    # Generated by CONFIG REWRITE
    sentinel config-epoch mymaster 6
    sentinel leader-epoch mymaster 6
    sentinel known-slave mymaster 10.20.15.236 6379
    sentinel current-epoch 6

    配置文件在这就不细说了。

    Jedis 如何使用:

            Set<String> sentinels = new HashSet<String>();
            sentinels.add("10.20.15.236:7000");
            sentinels.add("10.20.15.241:7000");
            JedisSentinelPool pool = new JedisSentinelPool("mymaster", sentinels);

    注意,该代码的IP地址是Sentinel 进展的IP和端口号。

  • 相关阅读:
    ASP.NET Web应用程序与ASP.NET Web服务应用程序的区别
    【你必须知道的.NET】:【大话String】
    获取SQLServer数据库中所有表
    Window_Open详解收藏
    关于数据实现批量删除
    asp.net mvc 图形解析说明原理
    【转载】:C#语言
    泛型参数的约束
    SQL 常用函数小结
    [转载]:C#两种不同的存储过程调用方法
  • 原文地址:https://www.cnblogs.com/qiumingcheng/p/6848997.html
Copyright © 2020-2023  润新知