• redis java api


    Jedis 就是redis支持java的第三方库,我们可以使用Jedis类库操作redis数据库。

    package bhz.redis.test;
    
    import java.util.Iterator;
    import java.util.List;
    
    import org.junit.Test;
    
    import redis.clients.jedis.Jedis;
    
    public class testRedis {
    
        private static Jedis jedis = new Jedis("139.196.123.218", 6379);
    
        /**
         * @param args
         */
        @Test
        public void test() {
    
            Jedis jedis = new Jedis("139.196.123.218", 6379);
            System.out.println(jedis);
            //
            List<String> list = jedis.mget("name", "age");
            for (Iterator iterator = list.iterator(); iterator.hasNext();) {
                String string = (String) iterator.next();
                System.out.println(string);
            }
            //
            // Map<String, String> user = new HashMap<String, String>();
            // user.put("name","huangyuxuan");
            // user.put("age", "0.5");
            // user.put("sex","男");
            // jedis.hmset("user",user);
    
            //
            // List<String> rsmap = jedis.hmget("user", "name", "age","sex");
            // System.out.println(rsmap);
            //
            // jedis.hdel("user","age");
            // System.out.println(jedis.hmget("user", "age")); //因为删除了,所以返回的是null
            // System.out.println(jedis.hlen("user")); //返回key为user的键中存放的值的个数2
            // System.out.println(jedis.exists("user"));//是否存在key为user的记录 返回true
            // System.out.println(jedis.hkeys("user"));//返回map对象中的所有key
            // System.out.println(jedis.hvals("user"));//返回map对象中的所有value
            //
            // testStr();
            // testList();
            // testSet();
    
            // Iterator<String> iter=jedis.hkeys("user").iterator();
            // while (iter.hasNext()){
            // String key = iter.next();
            // System.out.println(key+":"+jedis.hmget("user",key));
            // }
        }
    
        public static void testStr() {
            // -----添加数据----------
            jedis.set("name", "bhz");// 向key-->name中放入了value-->xinxin
            System.out.println(jedis.get("name"));// 执行结果:xinxin
    
            jedis.append("name", " is my lover"); // 拼接
            System.out.println(jedis.get("name"));
    
            jedis.del("name"); // 删除某个键
            System.out.println(jedis.get("name"));
            // 设置多个键值对
            jedis.mset("name", "bhz", "age", "27", "qq", "174754613");
            jedis.incr("age"); // 进行加1操作
            System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-"
                    + jedis.get("qq"));
    
        }
    
        public static void testList() {
            // 开始前,先移除所有的内容
            jedis.del("java framework");
            System.out.println(jedis.lrange("java framework", 0, -1));
            // 先向key java framework中存放三条数据
            jedis.lpush("java framework", "spring");
            jedis.lpush("java framework", "struts");
            jedis.lpush("java framework", "hibernate");
            // 再取出所有数据jedis.lrange是按范围取出,
            // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有
            System.out.println(jedis.lrange("java framework", 0, -1));
    
            jedis.del("java framework");
            jedis.rpush("java framework", "spring");
            jedis.rpush("java framework", "struts");
            jedis.rpush("java framework", "hibernate");
            System.out.println(jedis.lrange("java framework", 0, -1));
        }
    
        public static void testSet() {
            // 添加
            jedis.sadd("user1", "liuling");
            jedis.sadd("user1", "xinxin");
            jedis.sadd("user1", "ling");
            jedis.sadd("user1", "zhangxinxin");
            jedis.sadd("user1", "who");
            // 移除noname
            jedis.srem("user1", "who");
            System.out.println(jedis.smembers("user1"));// 获取所有加入的value
            System.out.println(jedis.sismember("user1", "who"));// 判断 who
                                                                // 是否是user集合的元素
            System.out.println(jedis.srandmember("user1"));
            System.out.println(jedis.scard("user1"));// 返回集合的元素个数
        }
    
    }
    package bhz.redis01;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    
    import org.junit.BeforeClass;
    import org.junit.Test;
    
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.Pipeline;
    import redis.clients.jedis.ShardedJedis;
    import redis.clients.jedis.ShardedJedisPipeline;
    import redis.clients.jedis.ShardedJedisPool;
    import redis.clients.jedis.Transaction;
    
    public class TestSingleRedis {
    
        private static Jedis jedis;
        private static ShardedJedis shard;
        private static ShardedJedisPool pool;
    
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
            // 单个节点
            jedis = new Jedis("139.196.123.218", 6379);
    
            // 分片
            // List<JedisShardInfo> shards = Arrays.asList(new JedisShardInfo(
            // "139.196.123.218", 6379));
            // shard = new ShardedJedis(shards);
            //
            // GenericObjectPoolConfig goConfig = new GenericObjectPoolConfig();
            // goConfig.setMaxTotal(100);
            // goConfig.setMaxIdle(20);
            // goConfig.setMaxWaitMillis(-1);
            // goConfig.setTestOnBorrow(true);
            // pool = new ShardedJedisPool(goConfig, shards);
        }
    
        // @AfterClass
        public static void tearDownAfterClass() throws Exception {
            jedis.disconnect();
            shard.disconnect();
            pool.destroy();
        }
    
        @Test
        public void testString() {
            // -----添加数据----------
            jedis.set("name", "bhz");// 向key-->name中放入了value-->xinxin
            System.out.println(jedis.get("name"));// 执行结果:xinxin
    
            jedis.append("name", " is my lover"); // 拼接
            System.out.println(jedis.get("name"));
    
            jedis.del("name"); // 删除某个键
            System.out.println(jedis.get("name"));
            // 设置多个键值对
            jedis.mset("name", "bhz", "age", "27", "qq", "174754613");
            jedis.incr("age"); // 进行加1操作
            System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-"
                    + jedis.get("qq"));
        }
    
        /**
         * redis操作Map
         */
        @Test
        public void testMap() {
            // -----添加数据----------
            Map<String, String> map = new HashMap<String, String>();
            map.put("name", "xinxin");
            map.put("age", "22");
            map.put("qq", "123456");
            jedis.hmset("user", map);
            // 取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List
            // 第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数
            List<String> rsmap = jedis.hmget("user", "name", "age", "qq");
            System.out.println(rsmap);
            // 删除map中的某个键值
            jedis.hdel("user", "age");
            System.out.println(jedis.hmget("user", "age")); // 因为删除了,所以返回的是null
            System.out.println(jedis.hlen("user")); // 返回key为user的键中存放的值的个数2
            System.out.println(jedis.exists("user"));// 是否存在key为user的记录 返回true
            System.out.println(jedis.hkeys("user"));// 返回map对象中的所有key
            System.out.println(jedis.hvals("user"));// 返回map对象中的所有value
    
            Iterator<String> iter = jedis.hkeys("user").iterator();
            while (iter.hasNext()) {
                String key = iter.next();
                System.out.println(key + ":" + jedis.hmget("user", key));
            }
        }
    
        /**
         * jedis操作List
         */
        @Test
        public void testList() {
            // 开始前,先移除所有的内容
            jedis.del("java framework");
            System.out.println(jedis.lrange("java framework", 0, -1));
            // 先向key java framework中存放三条数据
            jedis.lpush("java framework", "spring");
            jedis.lpush("java framework", "struts");
            jedis.lpush("java framework", "hibernate");
            // 再取出所有数据jedis.lrange是按范围取出,
            // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有
            System.out.println(jedis.lrange("java framework", 0, -1));
    
            jedis.del("java framework");
            jedis.rpush("java framework", "spring");
            jedis.rpush("java framework", "struts");
            jedis.rpush("java framework", "hibernate");
            System.out.println(jedis.lrange("java framework", 0, -1));
        }
    
        /**
         * jedis操作Set
         */
        @Test
        public void testSet() {
            // 添加
            jedis.sadd("user", "liuling");
            jedis.sadd("user", "xinxin");
            jedis.sadd("user", "ling");
            jedis.sadd("user", "zhangxinxin");
            jedis.sadd("user", "who");
            // 移除noname
            jedis.srem("user", "who");
            System.out.println(jedis.smembers("user"));// 获取所有加入的value
            System.out.println(jedis.sismember("user", "who"));// 判断 who
                                                                // 是否是user集合的元素
            System.out.println(jedis.srandmember("user"));
            System.out.println(jedis.scard("user"));// 返回集合的元素个数
        }
    
        @Test
        public void testRLpush() throws InterruptedException {
            // jedis 排序
            // 注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的)
            jedis.del("a");// 先清除数据,再加入数据进行测试
            jedis.rpush("a", "1");
            jedis.lpush("a", "6");
            jedis.lpush("a", "3");
            jedis.lpush("a", "9");
            System.out.println(jedis.lrange("a", 0, -1));// [9, 3, 6, 1]
            System.out.println(jedis.sort("a")); // [1, 3, 6, 9] //输入排序后结果
            System.out.println(jedis.lrange("a", 0, -1));
        }
    
        // @Test
        public void testTrans() {
            long start = System.currentTimeMillis();
            Transaction tx = jedis.multi();
            for (int i = 0; i < 1000; i++) {
                tx.set("t" + i, "t" + i);
            }
            // System.out.println(tx.get("t1000").get());
    
            List<Object> results = tx.exec();
            long end = System.currentTimeMillis();
            System.out.println("Transaction SET: " + ((end - start) / 1000.0)
                    + " seconds");
        }
    
        // @Test
        public void testPipelined() {
            Pipeline pipeline = jedis.pipelined();
            long start = System.currentTimeMillis();
            for (int i = 0; i < 1000; i++) {
                pipeline.set("p" + i, "p" + i);
            }
            // System.out.println(pipeline.get("p1000").get());
            List<Object> results = pipeline.syncAndReturnAll();
            long end = System.currentTimeMillis();
            System.out.println("Pipelined SET: " + ((end - start) / 1000.0)
                    + " seconds");
        }
    
        // @Test
        public void testPipelineTrans() {
            long start = System.currentTimeMillis();
            Pipeline pipeline = jedis.pipelined();
            pipeline.multi();
            for (int i = 0; i < 100000; i++) {
                pipeline.set("" + i, "" + i);
            }
            pipeline.exec();
            List<Object> results = pipeline.syncAndReturnAll();
            long end = System.currentTimeMillis();
            System.out.println("Pipelined transaction SET: "
                    + ((end - start) / 1000.0) + " seconds");
        }
    
        // @Test
        public void testShard() {
            long start = System.currentTimeMillis();
            for (int i = 0; i < 100000; i++) {
                String result = shard.set("shard" + i, "n" + i);
            }
            long end = System.currentTimeMillis();
            System.out.println("shard SET: " + ((end - start) / 1000.0)
                    + " seconds");
        }
    
        // @Test
        public void testShardpipelined() {
            ShardedJedisPipeline pipeline = shard.pipelined();
            long start = System.currentTimeMillis();
            for (int i = 0; i < 100000; i++) {
                pipeline.set("sp" + i, "p" + i);
            }
            List<Object> results = pipeline.syncAndReturnAll();
            long end = System.currentTimeMillis();
            System.out.println("shardPipelined SET: " + ((end - start) / 1000.0)
                    + " seconds");
        }
    
        // @Test
        public void testShardPool() {
            ShardedJedis sj = pool.getResource();
    
            long start = System.currentTimeMillis();
            for (int i = 0; i < 100000; i++) {
                String result = sj.set("spn" + i, "n" + i);
            }
            long end = System.currentTimeMillis();
            pool.returnResource(sj);
            System.out.println("shardPool SET: " + ((end - start) / 1000.0)
                    + " seconds");
        }
    
    }
  • 相关阅读:
    zabbix监控之zabbix-agent被动变为主动,搭建Proxy代理
    zabbix监控nginx,mysql,java
    浅谈 HTTP协议
    ELK实时日志分析平台环境部署,以及可视化展示
    Shell脚本中$0、$?、$!、$$、$*、$#、$@的意义
    mfs分布式文件系统,分布式存储,高可用(pacemaker+corosync+pcs),磁盘共享(iscsi),fence解决脑裂问题
    Centos 或者 Redhat修改系统时间
    HTTPS加密协议过程
    实现mysql的读写分离(mysql-proxy)____1(mysql的主从复制,基于gtid的主从复制,半同步复制,组复制)
    实现mysql的读写分离(mysql-proxy)____2
  • 原文地址:https://www.cnblogs.com/shmilyToHu/p/7423728.html
Copyright © 2020-2023  润新知