Jedis的基本使用入门1

Posted 好多个码农

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jedis的基本使用入门1相关的知识,希望对你有一定的参考价值。

7. Jedis的基本使用

7.1. jedis的介绍

  • jedis是官方首选的java客户端开发包

Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。 
​
在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 
​
在企业中用的最多的就是Jedis,Jedis同样也是托管在github上,
​
地址:https://github.com/xetorthio/jedis。
下载jedis解压后得到jar包如下:java操作redis数据库API(Jedis)
​

 

7.2. jedis的基本操作

7.2.1. jedis常用API

方法解释
new Jedis(host, port)创建jedis对象,参数host是redis服务器地址,参数port是redis服务端口
set(key,value)设置字符串类型的数据
get(key)获得字符串类型的数据
hset(key,field,value)设置哈希类型的数据
hget(key,field)获得哈希类型的数据
lpush(key,values)设置列表类型的数据
lpop(key)列表左面弹栈
rpop(key)列表右面弹栈
del(key)删除指定的key

7.2.2. jedis的基本操作

导入开发包:

 

public void testJedisSingle(){
​
    //1 设置ip地址和端口
​
    Jedis jedis = new Jedis("localhost", 6379);
​
    //2 设置数据
​
    jedis.set("name", "xxxx");
​
    //3 获得数据
​
    String name = jedis.get("name");
​
    System.out.println(name);
​
    //4 释放资源
​
    jedis.close();
​
}

7.3. jedis连接池的使用

7.3.1. jedis连接池的基本概念

jedis连接资源的创建与销毁是很消耗程序性能,所以jedis为我们提供了jedis的池化技术

jedisPool在创建时初始化一些连接资源存储到连接池中,使用jedis连接资源时不需要创建,

而是从连接池中获取一个资源进行redis的操作,使用完毕后,不需要销毁该jedis连接资源,

而是将该资源归还给连接池,供其他请求使用。

7.3.2. jedisPool的基本使用

public void testJedisPool(){
​
    //1 获得连接池配置对象,设置配置项
​
    JedisPoolConfig config = new JedisPoolConfig();
​
    // 1.1 最大连接数
​
    config.setMaxTotal(30);
​
    // 1.2  最大空闲连接数
​
    config.setMaxIdle(10);
​
    
​
    //2 获得连接池
​
    JedisPool jedisPool = new JedisPool(config, "localhost", 6379);
​
    
​
    //3 获得核心对象
​
    Jedis jedis = null;
​
    try {
​
        jedis = jedisPool.getResource();
​
        
​
        //4 设置数据
​
        jedis.set("name", "itcast");
​
        //5 获得数据
​
        String name = jedis.get("name");
​
        System.out.println(name);
​
        
​
    } catch (Exception e) {
​
        e.printStackTrace();
​
    } finally{
​
        if(jedis != null){
​
            jedis.close();
​
        }
​
        // 虚拟机关闭时,释放pool资源
​
        if(jedisPool != null){
​
            jedisPool.close();
​
        }
​
    }
​
}

7.4. 案例-编写jedis连接池工具类

JedisUtils.java

package util;
​
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
​
import java.util.ResourceBundle;
​
/**
 * Jedis工具类
 */
public final class JedisUtil {
    private JedisUtil(){}
    private static JedisPool jedilPool;
    private static int maxtotal;
    private static int maxwaitmillis;
    private static String host;
    private static int port;;
    
    /**
     * 读取jedis.properties配置文件
     */
    static{
        ResourceBundle rb = ResourceBundle.getBundle("jedis");
        maxtotal = Integer.parseInt(rb.getString("maxtotal"));
        maxwaitmillis = Integer.parseInt(rb.getString("maxwaitmillis"));
        host = rb.getString("host");
        port = Integer.parseInt(rb.getString("port"));
    }
    /**
     * 创建连接池
     */
    static{
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(maxtotal);
        jedisPoolConfig.setMaxWaitMillis(maxwaitmillis);
        jedilPool = new JedisPool(jedisPoolConfig,host,port);
    }
    /**
     * 获取Jedis
     */
    public static Jedis getJedis(){
        return jedilPool.getResource();
    }
    /**
     * 关闭Jedis
     */
    public static void close(Jedis jedis){
        if(jedis!=null){
            jedis.close();
        }
    }
}
​

 

jedis.properties(src目录下配置文件,编写配置文件)

maxtotal=100
maxwaitmillis=3000
host=127.0.0.1
port=6379
​

如何快速读取properties配置文件信息

使用jdk提供 ResourceBundle加载 通过getBundle("文件名") 通过 getString("key")获取目标数据

src下添加Properties配置文件

 

内容:

username=lisi
password=123
url=http://xxx
driverclass=com.mysql.jdbc.Driver
​

加载代码实现 : ResourceBundle.java使用说明

package cn.joesion.jedis.demo;
​
import java.util.ResourceBundle;
​
public class PropertiesDemo {
    //  java  专属类   ResourceBundle 对象  jdk 提供
    public static void main(String[] args) {
        //  getBundle源码查询 src路路径下的properties文件 传递文件名默认  .properties 所有不需要写扩展名
        String s = ResourceBundle.getBundle("db").getString("driverclass");
        String url = ResourceBundle.getBundle("db").getString("url");
        String aa = ResourceBundle.getBundle("db").getString("username");
        String bb = ResourceBundle.getBundle("db").getString("password");
        System.out.println(s);
        System.out.println(url);
        System.out.println(aa);
        System.out.println(bb);
    }
}
​

以上是关于Jedis的基本使用入门1的主要内容,如果未能解决你的问题,请参考以下文章

06005_Jedis入门

Jedis入门及对Redis数据结构的操作

Redis入门很简单之六Jedis常见操作

Jedis入门

Redis入门很简单之四初识Jedis

jedis连接redis