准备工作

在Linux中开启redis服务,并传入一个变量username,赋值为yyj:
在这里插入图片描述

第一个Jedis程序

导包

<dependencies>
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
    </dependency>
    <dependency>
        <groupId>commons-pool</groupId>
        <artifactId>commons-pool</artifactId>
        <version>1.5.4</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>1.3</version>
    </dependency>
</dependencies>

测试代码

public class JedisTest {
    @Test
    public void test(){
        //1.获得连接对象,参数为redis所在的服务器地址及端口号
        Jedis jedis = new Jedis("192.168.75.130", 6379);
        //2.获得数据
        String username = jedis.get("username");
        System.out.println(username);

        jedis.close();
    }
}

这里的redis服务器地址查找方式:

yyj@yyj-virtual-machine:~$ ifconfig -a

这样我们通过运行Redis的主机IP地址和Redis的端口号,然后就可以直接get到username的值了。

Jedis连接池

Jedis和数据库连接库一样,都有连接池,即JedisPool,通过简单的配置即可直接从连接池中取Jedis对象。
测试代码如下:

    public void test2(){
        //1.创建Jedis连接池配置
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        //设置最小和最大闲置个数
        jedisPoolConfig.setMaxIdle(5);
        jedisPoolConfig.setMaxIdle(10);
        //设置连接池最大个数
        jedisPoolConfig.setMaxTotal(30);

        //2. 创建Jedis连接池
        JedisPool jedisPool = new JedisPool(jedisPoolConfig, "192.168.75.130", 6379);

        //3.从连接池中获取Jedis对象
        Jedis jedis = jedisPool.getResource();

        //4.操纵数据
        jedis.set("age","20");
        System.out.println(jedis.get("age"));

        //5.关闭资源
        jedis.close();
        jedisPool.close();
    }
}

封装成工具类

将上面的Redis连接池封装成一个工具类,其他地方的代码直接调用工具类来执行即可。
首先在src下的resource目录下新建一个配置文件redis.properties,把一些配置信息存储在配置文件中:

#Redis连接信息
redis.ip = 192.168.75.130
redis.port = 6379

#Redis配置信息
redis.minIdle = 5
redis.maxIdle = 30
redis.maxTotal = 30

新建 JedisUtils.java:

public class JedisUtils {
    private static JedisPool jedisPool = null;
    /** 获取连接 **/
    public static Jedis getJedis(){
        if(jedisPool == null){
            initJedisPool();
        }
        return jedisPool.getResource();
    }
    
    /** 关闭连接 **/
    public static void closeJedis(Jedis jedis) {
        jedis.close();
    }
    
    private static void initJedisPool() {
        InputStream in = JedisUtils.class.getClassLoader().getResourceAsStream("redis.properties");
        Properties properties = new Properties();
        try {
            properties.load(in);
            JedisPoolConfig poolConfig = new JedisPoolConfig();
            poolConfig.setMinIdle(Integer.parseInt(properties.getProperty("redis.minIdle")));
            poolConfig.setMaxIdle(Integer.parseInt(properties.getProperty("redis.maxIdle")));
            poolConfig.setMaxTotal(Integer.parseInt(properties.getProperty("redis.maxTotal")));

            jedisPool = new JedisPool(
                    poolConfig,
                    properties.getProperty("redis.ip"),
                    Integer.parseInt(properties.getProperty("redis.port")));

        } catch (IOException e) {
            System.out.println("载入配置文件错误");
            e.printStackTrace();
        }
    }
}

测试代码如下:

@Test
public void test3() {
    Jedis jedis = JedisUtils.getJedis();
    System.out.println(jedis.get("age"));
    JedisUtils.closeJedis(jedis);
}

目录结构如下:
在这里插入图片描述


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

3. Redis--Redis的数据类型 Previous
1. Redis--安装Redis Next