前言

随着数据量的日益增长,很多时候如果直接用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的用法很多样,我这里的可能是比较基本的,因此还是需要多阅读一下文档。

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐