zoukankan      html  css  js  c++  java
  • redis分片

    本文是在window环境下测试

    什么是分片

    当数据量大的时候,把数据分散存入多个数据库中,减少单节点的连接压力,实现海量数据存储

    那么当多个请求来取数据时,如何知道数据在哪个redis呢,redis有自己的算法,下图是负载均衡的理解

    步骤:

    第一步:分配端口号,启动redis服务

      master1: 6500     master: 6501

    第二步:测试

        jar:

     

         代码:

    /**
         * 测试,多个主节点,分片    
         */
        @Test
        public void test02(){    
            //GenericObjectPoolConfig对象代表池的配置
            GenericObjectPoolConfig config  = new JedisPoolConfig();
            
            //设置redis服务器群
            List<JedisShardInfo> list = new ArrayList<JedisShardInfo>();
            
            //第一个主机
            JedisShardInfo shard1 = new JedisShardInfo("localhost",6500);
            shard1.setPassword("1");
            list.add(shard1);
            
            //第二个主机
            JedisShardInfo shard2 = new JedisShardInfo("localhost",6501);
            shard2.setPassword("1");
            list.add(shard2);
            
            //把服务器群加入到连接池中
            ShardedJedisPool pool = new ShardedJedisPool(config,list);
             
            //ShardedJedis对象可以存取数据
            ShardedJedis jedis = pool.getResource();
                
            //看key在主机点的分布情况
            for(int i = 0 ; i < 100;i++){
                jedis.set("user"+i, "value"+i);
            }
            
            //JedisShardInfo对象代表redis服务器,获得key=user1所在的redis服务器
            JedisShardInfo info = jedis.getShardInfo("user1");
            
            //查看主机
            String host = info.getHost();
            
            //获取redis服务器的端口号
            int port = info.getPort();
            
            System.out.println(host + " : " + port );
            
            //归还资源
            pool.returnResource(jedis);
        }

      结果:

      master1:

         master2:

      

      更多的细节问题还需要私下多多研究

  • 相关阅读:
    iOS 获取手机当前所连接的网络的IP地址
    np.delete详解
    np.concatenate函数
    说说如何在 Python 中使用日志
    Python os.getcwd() 方法
    python的构造函数
    python引入自己写的Py文件
    VS CODE编译Python输出中文乱码
    VScode中pytorch出现Module 'torch' has no 'xx' member错误
    matlab处理hd5高维数据
  • 原文地址:https://www.cnblogs.com/liuconglin/p/5914629.html
Copyright © 2011-2022 走看看