Redis专项进阶课 解决Redis工作实际问题+掌握Redis6.x特性MK

198 阅读2分钟

Download:百度网盘

提取码:45on

Java连接redis,首先修改两项配置文件

bind 127.0.0.1 ::1 注释掉

protected-mode 设置为no 

然后需要导入一个依赖

redis.clients jedis 3.1.0   

为了方便测试,我们引入junit

junit junit 4.13

这里我们给出一个例子,jedis对象就像我们的客户端

180415153714_8170.jpg RedisDemo

package com.hzy.redis;

import org.junit.Test; import redis.clients.jedis.Jedis;

public class RedisDemo { public static void main(String[] args) { // 连接Redis服务器 Jedis jedis = new Jedis("192.168.40.128",6379); // 权限认证,也就是我们redis-cli设置的密码 jedis.auth("root"); // 测试是否连接成功 // CentOS下查看防火墙运行访问的端口号:firewall-cmd --list-ports // 开启6379端口号:firewall-cmd --zone=public --add-port=6379/tcp --permanent // 重启防火墙:firewall-cmd --reload System.out.println(jedis.ping()); }

/*
* 测试String,redis中有哪些命令,jedis中就有哪些方法
* */
@Test
public void test1() {
    Jedis jedis = new Jedis("192.168.40.128",6379);
    jedis.auth("root");
    jedis.set("strName","hzy");
    String strName = jedis.get("strName");
    System.out.println(strName);

    jedis.close();
}

/*
* redis是为了减轻数据库的访问压力
* 如果某key存在,就在redis中查询,否则就去数据库中查询
* 并将查询出的数据存入到redis
* */
@Test
public void test2() {
    Jedis jedis = new Jedis("192.168.40.128",6379);
    jedis.auth("root");

    String key = "appName"; // key的名称
    if (jedis.exists(key)) {
        String s = jedis.get(key);
        System.out.println("redis中查询到的");
    } else {
        String s = "应用名";
        jedis.set(key,s);
        System.out.println("数据库中查询");
    }

    jedis.close();
}

}

 而且我们还可以通过连接池的方式进行操作,这里我们通过一个工具类进行获取jedis

RedisPoolUtil

package com.hzy.redis;

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

public class RedisPoolUtil { private static JedisPool jedisPool;

static {
    // 连接池配置信息,不写有默认值

// JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); // jedisPoolConfig.setMaxTotal(5); // 设置最大连接数 // jedisPoolConfig.setMaxIdle(1); // 设置最大空闲数 // 连接池 // JedisPool jedisPool = new JedisPool(jedisPoolConfig,"192.168.40.128",6379); // 连接池 jedisPool = new JedisPool("192.168.40.128",6379); } public static Jedis getJedis() { Jedis jedis = jedisPool.getResource(); jedis.auth("root"); return jedis; } public static void close(Jedis jedis) { jedis.close(); } }

然后一个测试类RedisDemo2

package com.hzy.redis;

import redis.clients.jedis.Jedis;

public class RedisDemo2 { public static void main(String[] args) { Jedis jedis = RedisPoolUtil.getJedis();

    String key = "strKey";
    if (jedis.exists(key)) {
        String s = jedis.get(key);
        System.out.println("redis中查询到的");
    } else {
        String s = "应用名";
        jedis.set(key,s);
        System.out.println("数据库中查询");
    }

    RedisPoolUtil.close(jedis);
}

}

第一次查询的时候,会输出数据库中查询,后续查询都是在redis中查询到的