• 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操作

  • 相关阅读:
    Linux内核参数之 overcommit_memory
    Nodejs安装模块之 mysql-libmysqlclient
    Mongo分片维护之平衡器
    Mac下搭建php开发环境【转】
    Mongodb 启动参数
    Nodejs npm安装某些包失败
    linux shell 字符串操作(长度,查找,替换)
    个人作业——软件工程实践总结&个人技术博客
    个人作业——软件评测
    结对第二次作业——某次疫情统计可视化的实现
  • 原文地址:https://www.cnblogs.com/lxcy/p/8120301.html
Copyright © 2020-2023  润新知