Jedis和JedisPool的简易使用——自定义的Jedis的连接池工具类

5.Java客户端Jedis

  • Jedis:一款Java操作redis数据库的工具。
  • 使用步骤:
    1. 下载jedis的jar包
    2. 使用:
     //1.获取连接
    Jedis jedis = new Jedis("localhost",6379);
    //2.操作
    jedis.set("username","rongshen");
    //3.关闭连接
    jedis.close();
    
  • Jedis操作各种redis中的数据结构
    1. string(字符串)
      • set
      • get
      • 测试代码:
      //1.获取连接
      Jedis jedis = new Jedis();//如果使用空参构造,默认值是"localhost",6379
      //2.操作
      //存储
      jedis.set("username","rongshen");
      //获取
      String username = jedis.get("username");
      System.out.println(username);
      
      //可以使用setex()方法存储可以指定过期时间的key和value
      jedis.setex("activecode",20,"hehe");//将activecode:hehe键值对存入redis,并且20秒后自动删除该键值对。很像邮件验证。
      
      //3.关闭连接
      jedis.close();
      
    2. hash(哈希)
      • hset
      • hget
      • hgetAll
      • 测试代码:
      //1.获取连接
      Jedis jedis = new Jedis();//如果使用空参构造,默认值是"localhost",6379
      //2.操作
      //存储hash
      jedis.hset("user","name","rongshen");
      jedis.hset("user","age","23");
      jedis.hset("user","gender","man");
      //获取hash
      String name = jedis.hget("user","name");
      System.out.println(name);
      
      //获取hash的所有map中的数据
      Map<String, String> user = jedis.hgetAll("user");
      //keyset遍历集合
      Set<String> keySet = user.keySet();
      for (String key : keySet) {
          String value = user.get(key);
          System.out.println(key+":"+value);
      }
      //3.关闭连接
      jedis.close();
      
    3. list(列表)
      • lpush
      • rpush
      • lpop
      • rpop
      • lange start end
      • 测试代码:
      //1.获取连接
      Jedis jedis = new Jedis();//如果使用空参构造,默认值是"localhost",6379
      //2.操作
      //list存储
      jedis.lpush("mylist","a","b","c");//从左边存
      jedis.rpush("mylist","a","b","c");//从右边存
      
      //list范围获取
      List<String> mylist = jedis.lrange("mylist", 0, -1);
      System.out.println(mylist);
      
      //list的弹出
      String elemnet = jedis.lpop("mylist");
      String element2 = jedis.rpop("mylist");
      
      //3.关闭连接
      jedis.close();
      
    4. set(集合)
      • sadd
      • 测试代码:
      //1.获取连接
      Jedis jedis = new Jedis();//如果使用空参构造,默认值是"localhost",6379
      //2.操作
      //set 存储
      jedis.sadd("myset","luji","jajia","lonzh");
      
      //set 获取
      Set<String> myset = jedis.smembers("myset");
      System.out.println(myset);
      
      //3.关闭连接
      jedis.close();
      
    5. zset(sorted set有序集合)
      • zadd
      • 测试代码:
       //1.获取连接
      Jedis jedis = new Jedis();//如果使用空参构造,默认值是"localhost",6379
      //2.操作
      //sortedset 存储
      jedis.zadd("mysortedset",34,"luji");
      jedis.zadd("mysortedset",23,"jiajia");
      jedis.zadd("mysortedset",56,"kk");
      
      //sortedset 获取
      Set<String> mysortedset = jedis.zrange("mysortedset",0,-1);
      System.out.println(mysortedset);
      
      //3.关闭连接
      jedis.close();
      

6.jedis的连接池技术:JedisPool

6.1使用:

  1. 创建JedisPool连接池对象
  2. 调用方法getResource()方法获取Jedis连接
    //0.创建一个配置对象
    JedisPoolConfig config = new JedisPoolConfig();
    config.setMaxTotal(50);//最大的连接数
    config.setMinIdle(10);//最大的空闲连接
    //1.创建Jedis连接池对象
    JedisPool jedisPool = new JedisPool(config,"localhost",6379);
    //2.获取连接
    Jedis jedis = jedisPool.getResource();
    //3.使用
    jedis.set("keyhehe","hah");
    //4.关闭,归还到连接池中
    jedis.close();
  1. jedis的详细配置:

7.自定义Jedis的连接池工具类

  1. 配置文件
host=127.0.0.1
port=6379
maxTotal=50
maxIdle=10
  1. 工具类
package cd.itcast.jedis.util;

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;

/**
 * JedisPool工具类
 * 1.加载配置文件,配置连接池的参数
 * 2.提供获取连接的方法
 */
public class JedisPoolUtil {
    private static JedisPool jedisPool;

    static {
        //读取配置文件
        InputStream is = JedisPoolUtil.class.getClassLoader().getResourceAsStream("jedis.properties");
        //创建Properties对象
        Properties pro = new Properties();
        //关联文件
        try {
            pro.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //获取数据,设置到JedisPoolConfig中
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
        config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));

        //初始化JedisPool
        jedisPool = new JedisPool(config, pro.getProperty("host"), Integer.parseInt(pro.getProperty("port")));
    }
    /**
     * 获取连接的范范
     */
    public static Jedis getJedis(){
        return jedisPool.getResource();
    }
}
  1. 测试代码
public void testUtils(){
        //通过连接池工具类获取
        Jedis jedis = JedisPoolUtil.getJedis();
        //使用
        jedis.set("keyhah","zhuaba");
        //关闭连接
        jedis.close();
    }
发布了52 篇原创文章 · 获赞 1 · 访问量 2270

猜你喜欢

转载自blog.csdn.net/Shen_R/article/details/104782754