springboot整合jedis

    技术2026-01-15  6

    添加依赖

    <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency>

    修改yml文件(redis中没设置密码)

    server: port: 8080 spring: redis: port: 6379 # password: host: 192.168.214.128 jedis: pool: max-active: 10 #最大连接数 max-idle: 6 #最大空闲数 min-idle: 2 #最小空闲数 timeout: 2000 #连接超时

    创建user实体类

    package com.yang.pojo; import java.io.Serializable; /** * Description: * date: 2020/7/4 18:06 * * @author Crille-g * @version 1.0 */ public class User implements Serializable { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } private Integer age; @Override public String toString() { return "User{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", age=" + age + '}'; } }

    创建JedisConfig

    package com.yang.config; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; /** * Description: * date: 2020/7/4 18:40 * * @author Crille-g * @version 1.0 */ @Configuration //相当于一个xml public class JedisConfig { private Logger logger= LoggerFactory.getLogger(JedisConfig.class); @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; // @Value("${spring.redis.password}") // private String password; @Value("${spring.redis.timeout}") private int timeout; @Value("${spring.redis.jedis.pool.max-active}") private int maxActive; @Value("${spring.redis.jedis.pool.max-idle}") private int maxIdle; @Value("${spring.redis.jedis.pool.min-idle}") private int minIdle; // 配置连接池 @Bean public JedisPool jedisPool(){ JedisPoolConfig jedisPoolConfig=new JedisPoolConfig(); jedisPoolConfig.setMaxIdle(maxIdle); jedisPoolConfig.setMinIdle(minIdle); jedisPoolConfig.setMaxTotal(maxActive); JedisPool jedisPool=new JedisPool(jedisPoolConfig,host,port,timeout); logger.info("jedispool连接成功"+host+"/t"+port); return jedisPool; } }

    创建JedisUtile工具类

    package com.yang.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; /** * Description: * date: 2020/7/4 19:40 * * @author Crille-g * @version 1.0 */ @Component public class JedisUtil { @Autowired private JedisPool jedisPool; //获取jedis连接 public Jedis getJedis(){ return jedisPool.getResource(); } //关闭jedis连接 public void closeJedis(Jedis jedis){ if (jedis!=null) jedis.close(); } }

    创建UserService接口

    package com.yang.service; import com.yang.pojo.User; /** * Description: * date: 2020/7/4 19:18 * * @author Crille-g * @version 1.0 */ public interface UserService { /** * Redis String 类型 */ public String getString(String key); public User selectById(String id); }

    实现UserService接口

    package com.yang.service.impl; import com.yang.config.JedisConfig; import com.yang.config.JedisUtil; import com.yang.pojo.User; import com.yang.service.UserService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import java.util.HashMap; import java.util.Map; /** * Description: * date: 2020/7/4 19:20 * * @author Crille-g * @version 1.0 */ @Service public class UserServiceImpl implements UserService { @Autowired private JedisPool jedisPool; private Logger logger= LoggerFactory.getLogger(JedisConfig.class); @Autowired private JedisUtil jedisUtil; @Override public String getString(String key) { // 得到jedis对象 Jedis jedis = jedisPool.getResource(); String val=null; //判断key是否存在于redis中 if (jedis.exists(key)){ logger.info("查询redis中的数据"); val=jedis.get(key); }else { val="qqqqqq"; logger.info("查询的是mysql中的数据"+val); jedis.set(key,val); } //关闭连接 jedis.close(); return val; } /** * TODO hash类型演示 */ @Override public User selectById(String id){ String key="user:"+id; User user = new User(); Jedis jedis = jedisUtil.getJedis(); if (jedis.exists(key)){ logger.info("查询的是redis"); jedis.hget(key,"name"); Map<String, String> map = jedis.hgetAll(key); user.setId(map.get("id")); user.setName(map.get("name")); user.setAge(Integer.parseInt(map.get("age"))); }else { logger.info("查询的是mysql"); user.setAge(28); user.setId(id); user.setName("老王"); Map<String,String> map= new HashMap<>(); map.put("id",user.getId()); map.put("name", user.getName()); map.put("age",user.getAge().toString()); jedis.hmset(key,map); } jedisUtil.closeJedis(jedis); return user; } }

    测试代码

    package com.yang; import com.yang.pojo.User; import com.yang.service.UserService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import redis.clients.jedis.JedisPool; @SpringBootTest class BootJedisApplicationTests { @Autowired private UserService userService; @Test void contextLoads() { } /** * 模拟Jedis 操作Redis String类型的数据 */ @Test void t1(){ String result = userService.getString("name"); System.out.println(result); } /** * 模拟Jedis 操作Redis Hash类型的数据 */ @Test void t2(){ User user=userService.selectById("1001"); System.out.println(user); } }
    Processed: 0.017, SQL: 9