Loading

Java客户端 Jedis与连接池

Jedis: 一款java操作redis数据库的工具

使用步骤:
1. 下载jedis的jar包(可到maven仓库下载)附网盘地址
链接:(https://pan.baidu.com/s/13MdXgSk_bkeupxFbuPjruw
提取码:8888
2. 使用
2.1 将jedis.jar包和commons.pool2.jar导入到工程项目中

//1. 获取连接

               			//2. 操作
               			jedis.set("username","zhangsan");
                		//3. 关闭连接
                		jedis.close(); 

Jedis操作各种redis中的数据结构

1 字符串类型 string
       set
       get
	   Jedis jedis = new Jedis();//如果使用空参构造,默认值 "localhost",6379端口
                    jedis.set("username","zhangsan");  //存储
                     String name = jedis.get("username"); //取值
          Jedi.setex("activecods",20,"hehe"); //jedis中有一个 setex方法可以将activecods(key) hehe(values) 存入redis,
                                                                                            //并且20秒后自动删除该键值对
                  jedis.close()  //关闭连接
2 哈希类型 hash : map格式  
            hset
        	hget
        	hgetAll
          Jedis jedis = new Jedis();
Jedis jedis = new Jedis("localhost",6379);
    jedis.hset("user","name","lisi");
    jedis.hset("user","age","18");
    jedis.hset("user","gender","male");
    jedis.hget("user","name");
    Map<String,String> user= jedis.hgetAll("user");//获取所有元素 并返回一个map集合
    //遍历集合
    Set<String> keySet = user.keySet();
    for(String key : keySet){
        String value =  user.get(key);
        System.out.println("key"+key+"value"+value);
    }
    jedis.close() ;//关闭连接    
    3 列表类型 list : linkedlist格式。支持重复元素
		lpush / rpush
		lpop / rpop
		lrange start end : 范围获取

        Jedis jedis = new Jedis("localhost",6379);
            jedis.lpush("mylist","1","2","3");
            jedis.rpush("mylist","5","6");
        List<String> mylist = jedis.lrange("mylist", 0, -1);
        System.out.println(mylist);
        String pop = jedis.lpop("mylist");  //左边弹出一个值并返回
        System.out.println(pop);
        jedis.close() ;//关闭连接


    4 集合类型 set  : 不允许重复元素
	sadd
	smembers:获取所有元素
  
   Jedis jedis = new Jedis();
        jedis.sadd("myset","java","php","C++");
        Set<String> myset = jedis.smembers("myset");
        System.out.println(myset);
        
        jedis.close();

    5 有序集合序列 sortedset:不允许重读元素
      zadd 
       zrange

       Jedis jedis = new Jedis();
         jedis.zadd("mysortedset",3,"盖伦");
        jedis.zadd("mysortedset",30,"y亚索");
        jedis.zadd("mysortedset",300,"火男");

        Set<String> mysortedset = jedis.zrange("mysortedset", 0, -1);
        System.out.println(mysortedset);
        jedis.close();

    
    ##jedis连接池:JediPool
      使用 : 1创建1 JedisPool连接池对象 
              2 调用方法 getResource()方法
      
    //使用

 JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();  //获取配置对象
            jedisPoolConfig.setMaxTotal(50);  //设置最大连接数
        jedisPoolConfig.setMaxIdle(10);  //设置最大空闲连接

        JedisPool jedisPool = new JedisPool(jedisPoolConfig,"localhost",6379);
        Jedis resource = jedisPool.getResource();
        //使用
        resource.set("hehe","haha");
            resource.close(); //归还连接


#Jdeis工具类的创建及使用
      1创建JedisPool 的配置文件  jedis.properties   (21版idea配置文件应放在resources文件下不然加载文件时会报空指针异常)
![](https://img2022.cnblogs.com/blog/2789097/202203/2789097-20220312164742773-1358961857.png)
     2 创建 jedisUtil工具类

package dedistest;

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

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class jdeisUtil {
private static JedisPool jedisPool;

//静态代码块加载资源文件
static{
//读取配置文件
InputStream is = jdeisUtil.class.getClassLoader().getResourceAsStream("jedis.properties");
//创建Properties对象
Properties pro = new Properties();
//关联文件
try {
pro.load(is);
} catch (IOException e) {
e.printStackTrace();
}
//获取数据,设置到 JedisPool对象中
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
jedisPoolConfig.setMaxIdle(Integer.parseInt(pro.getProperty("maxRdle")));
//初始化JedisPool对象
jedisPool = new JedisPool(jedisPoolConfig,pro.getProperty("host"), Integer.parseInt(pro.getProperty("port")));
}

// getJdeis方法返回 jedisPool.getResource 对象
public static Jedis getJdeis(){

    return jedisPool.getResource();
}

}



实现类

public class jdeisDemo1 {
public static void main(String[] args) {

    Jedis jd = jdeisUtil.getJdeis();
    jd.set("name","lisi");
    String name = jd.get("name");
    System.out.println(name);

    jd.close();
}}
     



      

        
posted @ 2022-03-12 16:10  冰莫莫  阅读(204)  评论(0编辑  收藏  举报