用Jedis连接Redis

jedis中的方法名,和Redis的命令几乎一样

1.jar包,作为测试只需要一个jar

2.代码

package com;

import java.util.HashMap;
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.Jedis;
import redis.clients.jedis.Pipeline;

/**
 * 使用jedis连接Redis
 */
public class TestJedis {
    
    private Jedis j;
    
    /**
     * 连接redis
     */
    @Before
    public void before(){
        
         j = new Jedis("localhost", 6379);
    }
    
    /**
     * 操作String类型
     * 
     */
     @Test
    public void test00(){
        
         //添加数据:添加数据时,若key值相同,则value的值会覆盖
        j.set("name1", "李四");
        
         //添加数据并设置有效期:第二个参数为有效时间:10秒,超过时间key自动销毁
        j.setex("name2", 10, "有效期10秒");
        
         //添加多条数据
        j.msetnx("name3", "王五","name4","赵六");
        
        //删除
        j.del("name2");
        
        //取数据
        System.out.println( j.get("name1") );
        
        //查看key的剩余时间
        System.out.println( j.ttl("name3") );
        
        //批量获取key
        List<String> mget = j.mget("name1","name3");
        
        for (String string : mget) {
            System.out.println(string);
        }
    }
     
     /**
      * List类型
      */
     @Test
     public void test01(){
         
         //清空数据库
         j.flushDB();
         
         //向key=name1,添加三条数据
         j.lpush("name1", "张三","李四","王五");
         
         //按下标取出数据,0代表第一个元素,-1代表最后一个元素
         List<String> list = j.lrange("name1", 0, -1);
         for (String string : list) {
            System.out.println(string);
        }
         
        //除了第一个元素,其他全部删除
         j.ltrim("name1", 0, 0);
         
     }
    
     /**
      * HashSet
      */
     //
     @Test
     public void test02(){
         //清空数据库
         j.flushDB();
         
         //添加
         j.sadd("name1", "1","2","3");
         
         //查所有
         Set<String> smembers = j.smembers("name1");
         for (String string : smembers) {
            System.out.println(string);
        }
     }
     
     /**
      * SortedSet
      */     @Test
     public void test3(){
         j.del("name1");
         
         //添加分数为1好2的两条数据
         j.zadd("name1", 3, "张三");
         j.zadd("name1",1,"李四");
         
         //
         Set<String> zrange = j.zrange("name1", 0, -1);
         for (String string : zrange) {
                System.out.println(string);     // 输出: 李四,张三
        }
     }
     
     /**
      * HashMap
      */
     @Test
     public void test04(){
         j.del("name1");
         //添加map源数据
         HashMap<String,String> map = new HashMap<String,String>();
         map.put("name1", "张三");
         map.put("name2", "李四");
         
         //向Redis添加数据
         j.hmset("names", map);
         
         //查询map中的数据
         List<String> hmget = j.hmget("names","name1","name2");
         for (String string : hmget) {
            System.out.println(string);
        }
     }
     
     /**
      * 批量插入
      */
     @Test
     public void test05(){
         //开始时间
         long begin = System.currentTimeMillis();
         
         //批量插入
         Pipeline pipelined = j.pipelined();
         
         for (int i = 0; i < 100000; i++) {
             
             pipelined.set("name"+ i, "value"+i);
        }
         //释放
         pipelined.sync();
         
         //结束时间
         long end = System.currentTimeMillis();
         
         System.out.println( ( (end - begin) /1000.0 ) +"秒");
     }
    
}
原文地址:https://www.cnblogs.com/liuconglin/p/5910939.html