zoukankan      html  css  js  c++  java
  • 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和端口号。

  • 相关阅读:
    web策略类游戏开发(五)数据库表设计
    web策略类游戏开发(一) WebGame架构篇
    SQL Server2005之初体验!
    SQL SERVER2005关于如何找到表的说明。
    脚本实现CheckBox父选中,子全选中,子选中父也选中!
    今天看到人家系统中有此效果,不知道是怎么实现的。
    忆风伶夜雨
    GridView双击某行弹出一新窗口!
    DIV位置永恒居中。
    关于:装了Visual.SourceSafe.2005之后,打开VS2005文件,找不到源代码管理这项的问题
  • 原文地址:https://www.cnblogs.com/qiumingcheng/p/6848997.html
Copyright © 2011-2022 走看看