content: package redis.clients.jedis;
  
  import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
  import org.junit.Before;
  import org.junit.Test;
  
  import redis.clients.util.SafeEncoder;
  
  import java.util.*;
  import java.util.Map.Entry;
  
  public class PipelineClusterTest {
  
      private PipelineCluster pipelineCluster;
  
      private List<String> keys = new ArrayList<String>();
  
      @Before
      public void before() {
          GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
          poolConfig.setMaxWaitMillis(2 * 1000L);
          Set<HostAndPort> nodes = new HashSet<HostAndPort>();
  
          //test mHgetAll
          nodes.add(new HostAndPort("127.0.0.1", 6386));
          nodes.add(new HostAndPort("127.0.0.1", 6386));
          nodes.add(new HostAndPort("127.0.0.1", 7642));
          nodes.add(new HostAndPort("127.0.0.1", 7643));
          nodes.add(new HostAndPort("127.0.0.1", 7644));
          nodes.add(new HostAndPort("127.0.0.1", 6392));
          pipelineCluster = new PipelineCluster(poolConfig, nodes);
          for (int i = 1; i < 10; i++) {
              String key = "key:" + i;
              keys.add(key);
          }
      }
  
      @Test
      public void testMset() throws Exception {
          Map<String, String> keyValues = new HashMap<String, String>();
          for (int i = 0; i < keys.size(); i++) {
              keyValues.put(keys.get(i), "value-" + (i + 1));
          }
          String response = pipelineCluster.mset(keyValues);
          System.out.println(response);
      }
  
      @Test
      public void testMget() throws Exception {
          Map<String, String> keyValues = pipelineCluster.mget(keys);
          System.out.println(keyValues);
      }
  
      @Test
      public void testMdel() throws Exception {
          long deleteCount = pipelineCluster.mdel(keys);
          System.out.println(deleteCount);
      }
  
      @Test
      public void testHset() throws Exception {
          String key = "we:media:24:key";
          Set<String> keys = pipelineCluster.hkeys(key);
          System.out.println(keys.size());
          for (String vid : keys) {
              System.out.println(vid);
          }
      }
  
      @Test
      public void testSScan() throws Exception {
          String key = "sscan:test:1";
          for (int i = 1; i <= 500; i++) {
              pipelineCluster.sadd(key, "v=" + i);
          }
          String cursor = "0";
          int count = 200;
          ScanParams params = new ScanParams();
          params.count(count);
          while (true) {
              ScanResult<byte[]> sscan = pipelineCluster.sscan(SafeEncoder.encode(key), SafeEncoder.encode(cursor), params);
              List<byte[]> list = sscan.getResult();
              cursor = sscan.getCursor();
              System.out.println("cursor=" + cursor + " size" + list.size());
              if (cursor.equals("0")) {
                  break;
              }
          }
  
          pipelineCluster.del(key);
      }
      
      
      
      @Test
      public void testMHgetAll() {
          List<String> keys = new ArrayList<String>();
          keys.add("ugc:video:feature:5946211");
          keys.add("ugc:video:feature:30491583");
          keys.add("ugc:video:feature:63108807");
          keys.add("ugc:video:feature:77257903");
          keys.add("ugc:video:feature:10113377");
          keys.add("ugc:video:feature:30542906");
          keys.add("ugc:video:feature:54608980");
          keys.add("ugc:video:feature:72082818");
          Map<String, Map<String, String>> mmap = pipelineCluster.mHgetAll(keys);
          for (Entry<String, Map<String, String>> entry : mmap.entrySet()) {
              System.out.println(entry.getKey());
              for (Entry<String, String> entry2 : entry.getValue().entrySet()) {
                  System.out.println("\t" + entry2.getKey() + ":" + entry2.getValue());
              }
          }
      }
      
  }