Jedis 操作数据

 private static JedisPool pool = null;
//测试String类型
    @Test
    public void testString(){
//jedispool为空的时候初始化
        JedisPoolConfig config = new JedisPoolConfig();
        //控制一个pool可分配多个jedis实例,通过pool.getResource()来获取

        //如果赋值为-1,则表示不限制,如果pool已经分配了maxTotal个jedis实例,则此时pool的状态为exhausted(耗尽)
        config.setMaxTotal(600);
        //控制一个pool最多有多少个状态为idle(空闲)的jedis实例
        config.setMaxIdle(300);
        //设置最小空闲连接数
        config.setMinIdle(1);
        //设置最大等待时间
        config.setMaxWaitMillis(3000);
        //表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionExceptior
        config.setMaxWaitMillis(3000);
        //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
        config.setTestOnBorrow(true);
        //连接的最小空闲时间 默认1800000毫秒(30分钟)
        config.setMinEvictableIdleTimeMillis(300000);
        //每次释放连接的最大数目,默认3
        config.setNumTestsPerEvictionRun(1024);
        //逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
        config.setTimeBetweenEvictionRunsMillis(30000);
        //#是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一
        config.setTestOnBorrow(true);
        //返回性校验
        config.setTestOnReturn(true);
        //空闲时检查
        config.setTestWhileIdle(true);
        //设置后进先出
        config.setLifo(true);
        pool = new JedisPool(config, "host",  6379, 10000, "auth");
        Jedis jedis = pool.getResource();
        jedis.select(1);
        //设定该Key持有指定的字符串Value,如果该Key已经存在,则覆盖其原有值。返回值总是返回"OK"
        String returnset = jedis.set("mykey", "hello");
        //根据键获取值
        String mykeyValue = jedis.get("mykey");
        
        //追加  如果key存在,则在原来的key的value后面追加;否则效果相当于set
        Long result = jedis.append("mykey7", "我是后面追加的7");
        
        //判断该键是否存在,存在返回true,否则返回false。
        Boolean result5 = jedis.exists("mykey");
        
        //取指定Key的字符长度,等效于C库中strlen函数。
        Long result6 = jedis.strlen("mykey");
        
        //=================================
        //设置Key的值为20
        jedis.set("mykey2", "20");
        //该Key的值递增1
        Long result1 = jedis.incr("mykey2");
        
        //该key的值递减1
        Long result2 = jedis.decr("mykey2");
        
        //删除已有键,删除成功返回1,该键不存在的话就返回0.
        Long result3 = jedis.del("mykey");
        
        //从第六个开始替换2个字符(dd只有2个字符),从0开始计数,如果长度不够,就用空格空字符替代
        jedis.setrange("mykey", 6, "dd");//"hello dd"
        
        //截取该键的Value,从第一个字符开始,到第二个字符结束。它是从0开始计数的
        String returngetRange = jedis.getrange("mykey", 1, 2);//el
        //20已经超过Value的总长度,因此将截取第一个字节后面的所有字节。
        String returngetRange2 = jedis.getrange("mykey", 1, 20);//ello
        
        //批量设置了key1和key2两个键。返回值表示是否执行成功,执行成功返回1.
        Long returnmsetnxValue = jedis.msetnx("key1","key1Value","key2","key2Value");
        
        //批量获取了key1和key2两个键的值。
        List<String> mget = jedis.mget("key1","key2");
        for(String value:mget){
            System.out.print(value+"  ");
        }
        //打印结果为:key1Value  key2Value
        
        //批量设置了key3和key5两个键,但是key3已经存在,所以该命令执行失败并返回0。
        Long returnmsetnxValue1 = jedis.msetnx("key2","key2Value","key3","key3Value");
        
        //批量获取key2和key3,由于key3没有设置成功,所以返回nil。
        List<String> mget1 = jedis.mget("key2","key3");
        for(String value:mget1){
            System.out.print(value+"  ");
        }
        //打印结果依次为 key2Value null,因为key3没有设置成功,所以取出来的值为null
        
        
        //该命令原子性的完成参数中所有key/value的设置操作,其具体行为可以看成是多次迭代执行SET命令。     该命令不会失败,始终返回OK。  
        String mset = jedis.mset("key2","key2newValue","key3","key3Value");
        
        //设置从0开始计算的第七位BIT值为1,返回原有BIT值0.这里用1代表true,用0代表false。
        //Boolean setbit = jedis.setbit("mybitkey", 7, true);
        String result4 = mykeyValue;
        
        //返回了指定Offset的BIT值。以true代表1,false代表0
        Boolean getbitsixresult = jedis.getbit("mybitkey", 7);
        
        jedis.close();
    }

参考补充:https://www.cnblogs.com/lixianyuan-org/p/9480602.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章