zoukankan      html  css  js  c++  java
  • JedisCluster操作redis集群demo

    package com.chenk;
    
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    
    import org.junit.Before;
    import org.junit.Test;
    import redis.clients.jedis.HostAndPort;
    import redis.clients.jedis.JedisCluster;
    import redis.clients.jedis.Tuple;
    
    public class JedisClusterDemo {
        JedisCluster jedis = null;
    
        @Before
        public void conn() {
            Set<HostAndPort> nodes = new HashSet<HostAndPort>();
            nodes.add(new HostAndPort("192.168.178.161", 6379));
            nodes.add(new HostAndPort("192.168.178.161", 6380));
            nodes.add(new HostAndPort("192.168.178.161", 6381));
            nodes.add(new HostAndPort("192.168.178.161", 6382));
            nodes.add(new HostAndPort("192.168.178.161", 6383));
            nodes.add(new HostAndPort("192.168.178.161", 6384));
            jedis = new JedisCluster(nodes);
        }
    
        /**
         * 操作String
         */
        @Test
        public void operStr() {
    
            // 添加一条数据
            jedis.set("username", "jonychen");
            // 获取一条数据
            String username = jedis.get("username");
            System.out.println("用户名:" + username);
    
            // 删除
            jedis.del("username");
        }
    
        /**
         * 操作hash
         */
        @Test
        public void operHash() {
            // 添加一条
            jedis.hset("goodsInfo", "goodsName", "403-超级手机");
            // 获取一条
            String goodsName = jedis.hget("goodsInfo", "goodsName");
            System.out.println("商品名称" + goodsName);
    
            Map<String, String> hash = new HashMap<String, String>();
            hash.put("orderSn", "20171226122301");
            hash.put("orderStatus", "提交预订单");
    
            // 添加多条
            jedis.hmset("orderInfo", hash);
            System.out.println("---------------");
            // 获取多条
            List<String> strList = jedis.hmget("orderInfo", "orderSn", "orderStatus");
            for (String string : strList) {
                System.out.println(string);
            }
            System.out.println("---------------");
            // 获取全部
    
            Map<String, String> orderInfoMap = jedis.hgetAll("orderInfo");
            for (Entry<String, String> entry : orderInfoMap.entrySet()) {
                System.out.println(entry.getKey() + ":" + entry.getValue());
            }
    
            // 删除
            jedis.hdel("orderInfo", "orderStatus");
        }
    
        /**
         * 操作list
         */
        @Test
        public void operList() {
            // 添加
            for (int i = 0; i < 10; i++) {
                jedis.lpush("animals", "dog" + i, "cat" + i, "fish" + i);
            }
    
            // 获取
            String reString = jedis.rpop("animals");
            System.out.println(reString);
            // 分页查询 start:起始条数 end :结束条数
            List<String> strList = jedis.lrange("animals", 0, 9);
            for (String string : strList) {
                System.out.println(string);
            }
            System.out.println("----------------");
            // 获取总条数
            Long total = jedis.llen("animals");
            System.out.println("总条数" + total);
            // 删除
            jedis.lrem("animals", 1, "dog0");
        }
    
        /**
         * 操作set
         */
        @Test
        public void operSet() {
            // 添加
            jedis.sadd("members", "xiaoming", "xiaohua", "xiaohui", "xiaochen");
            // 获取
            Set<String> members = jedis.smembers("members");
            for (String string : members) {
                System.out.println(string);
            }
            // 删除
            jedis.srem("members", "xiaohui");
        }
    
        /**
         * 操作sorted set-自动排序
         */
        @Test
        public void operSortedSet() {
            Map<String, Double> scoreMembers = new HashMap<String, Double>();
            scoreMembers.put("小明", 89D);
            scoreMembers.put("xiaopeng", 93D);
            scoreMembers.put("小胡", 88D);
            // 添加
            jedis.zadd("score", scoreMembers);
            // 获取start :起始条数 end:结束条数 按分数升序查询
            Set<String> strSet = jedis.zrange("score", 0, 1);
            for (String string : strSet) {
                System.out.println(string);
            }
            System.out.println("-------------");
            // 降序查询,并获取成员的分数
            Set<Tuple> tupleSet = jedis.zrevrangeWithScores("score", 0, 1);
            for (Tuple tuple : tupleSet) {
                // 成员
                String element = tuple.getElement();
                Double score = tuple.getScore();
                System.out.println(element + ":" + score);
            }
            System.out.println("-----------------");
            // 获取总条数
            Long total = jedis.zcard("score");
            System.out.println("总条数:" + total);
            // 删除
            jedis.zrem("score", "xiaopeng");
        }
    }

     与单节点redis不同点

    1     JedisCluster不支持ping操作

    2     JedisCluster不能同时操作多个key(mset、mget不能正常调用)

    3     JedisCluster不支持flushAll、flushDb操作

  • 相关阅读:
    C#各自定义控件的网址链接
    给应用程序加装“看门狗”
    CRT detected that the application wrote to memory after after the end of heap buffer(这个经常忘掉)
    关于C#中的Delegate的一些知识
    实行项目管理信息化的好处
    C#连接池的详细分析(转)
    .Net Remoting和Web Service大比拼(转)
    使用SqlDataSource调用带参数存储过程插入数据
    156转换为byte时为什么会变成100的解释
    站在“组织者”这个角色上
  • 原文地址:https://www.cnblogs.com/lxcy/p/8120301.html
Copyright © 2011-2022 走看看