【redis】jedis使用

使用jedis访问redis数据库

创建个maven项目JedisDemo

引入依赖

<dependencies>  
     <dependency> 
        <groupId>redis.clients</groupId>  
         <artifactId>jedis</artifactId>  
         <version>2.9.0</version>  
     </dependency>
</dependencies>

创建个类连接

import redis.clients.jedis.Jedis;  

import java.util.HashMap;  
import java.util.List;  
import java.util.Set;  

public class DemoTest {  

    public static void main(String[] args) {  
        String host="127.0.0.1";  
     int port=6379;  
  Jedis jedis=new Jedis(host,port);  
  //jedis.auth("password");  

 //字符串类型  System.out.println("字符串");  
  System.out.println(jedis.get("haha"));  

  //hash类型  
  System.out.println("hashmap");  
  HashMap<String,String> map= (HashMap<String, String>) jedis.hgetAll("mymap");  
  System.out.println(map.get("name")+" "+map.get("age"));  

  //list类型  
  System.out.println("List类型");  
  List alist=jedis.lrange("mylist",0,-1);  
  alist.stream().forEach(System.out::println);  

  //set类型  
  System.out.println("set类型");  
  Set myset=jedis.smembers("myset");  
  myset.stream().forEach(System.out::println);  

  //zset类型  
  System.out.println("zset类型");  
  Set myzset=jedis.zrangeByScore("myzset","30","50");  
  myzset.stream().forEach(System.out::println);  
  }  
}

输出

字符串
llxizayyyy
hashmap
lili 5
List类型
a
a
k
j
i
h
g
f
zzz
e
d
c
b
a
set类型
j
l
g
n
a
d
h
zset类型
tom
xiaoming
huhu

访问redis成功,可以看到方法名和我们在redis控制台使用的命令一致。



使用RedisPool

import redis.clients.jedis.JedisPool;  
import redis.clients.jedis.JedisPoolConfig;  

public class JedisUtils {  

    private static JedisPool jedisPool;  

 public static JedisPool open(String ip,int port){  
        JedisPoolConfig config=new JedisPoolConfig();  

  //设置最大线程数  
  config.setMaxTotal(20);  

  //设置最大空闲数  
  config.setMaxIdle(2);  

  //设置检查项为true  
  config.setTestOnBorrow(true);  

  //  
  jedisPool=new JedisPool(config,ip,port,5000,"password");  

 return jedisPool;  
  }  

    public static void close(){  
        if(jedisPool!=null){  
            jedisPool.close();  
  }  
    }  
}

使用

JedisPool pool = null;  
Jedis myjedis=null;  
try{  
    pool=JedisUtils.open(host,port);  
  myjedis=pool.getResource();  
  //使用jedis操作  
}finally {  
    if(jedis!=null){  
        jedis.close();  
  }  
}

事务

只需要声明一个
Transaction类
Transaction trans=jedis.multi();
xxxx
xxx
xx
xxxx
xx
然后trans.exec()返回一个list集合,里面是事务语句的结果