Springboot连接Redis

Posted Firm陈

tags:

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

前言
随着数据量的日益增长,很多时候如果直接用SELECT * FROM XXX这些SQL语句来对上千万的数据进行查询,那耗费的时间可想而知。

作为用户一方,肯定希望系统响应越快越好,没什么人喜欢点一个按钮要等到吃完一顿饭回来还没能够响应成功,何况像我这些急性子的人,哈哈!

对Redis不了解的同学,可以自己先去查阅一下,网上有很多关于这方面的说法,我这里就不做阐述了。

开始
引入依赖
在pom.xml中添加以下代码:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

不过,在idea创建Springboot项目的时候,可以勾选Redis,这样就不用自己引入依赖了,如下图:

然后在application.properties中添加以下配置信息:

spring.redis.host=     ## redis所在的服务器IP
spring.redis.port=6379 ## 端口
spring.redis.password= ##密码,我这里没有设置,所以不填
spring.redis.pool.max-active=8 ## 设置最大连接数,0为无限

编写代码
IRedisServie.java:

public interface IRedisService {

    // 加入元素
    void setValue(String key, Map<String, Object> value);
    // 加入元素
    void setValue(String key, String value);
    // 加入元素
    void setValue(String key, Object value);
    // 获取元素
    Object getMapValue(String key);
    // 获取元素
    Object getValue(String key);
}

RedisServiceImpl.java:

@Service
public class RedisServiceImpl implements IRedisService {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    @Autowired
    private RedisTemplate redisTemplate;
    
    @Override
    public void setValue(String key, Map<String, Object> value) {
        ValueOperations<String, Object> vo = redisTemplate.opsForValue();
        vo.set(key, value);
        redisTemplate.expire(key, 1, TimeUnit.HOURS); // 这里指的是1小时后失效
    }

    @Override
    public Object getValue(String key) {
        ValueOperations<String, String> vo = redisTemplate.opsForValue();
        return vo.get(key);
    }

    @Override
    public void setValue(String key, String value) {
        ValueOperations<String, Object> vo = redisTemplate.opsForValue();
        vo.set(key, value);
        redisTemplate.expire(key, 1, TimeUnit.HOURS); // 这里指的是1小时后失效
    }

    @Override
    public void setValue(String key, Object value) {
        ValueOperations<String, Object> vo = redisTemplate.opsForValue();
        vo.set(key, value);
        redisTemplate.expire(key, 1, TimeUnit.HOURS); // 这里指的是1小时后失效
    }

    @Override
    public Object getMapValue(String key) {
        ValueOperations<String, String> vo = redisTemplate.opsForValue();
        return vo.get(key);
    }
}

到这里核心代码基本完成。

结尾
Redis的用法很多样,我这里的可能是比较基本的,因此还是需要多阅读一下文档。

以上是关于Springboot连接Redis的主要内容,如果未能解决你的问题,请参考以下文章

不会用SpringBoot连接Redis,那就赶紧看这篇

不会用SpringBoot连接Redis,那就赶紧看这篇

spring boot redis Lettuce连接池

springboot连接redis错误 io.lettuce.core.RedisCommandTimeoutException:

springboot连接redis密码验证失败

Shiro整合Springboot缓存之Redis实现