Springboot连接Redis

深藏阁楼爱情的钟 2022-09-08 10:28 227阅读 0赞

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

作为用户一方,肯定希望系统响应越快越好,没什么人喜欢点一个按钮要等到吃完一顿饭回来还没能够响应成功。

对Redis不了解的同学,可以自己先去查阅一下,网上有很多资料。

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

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-data-redis</artifactId>
  4. </dependency>

不过,在idea创建Springboot项目的时候,可以勾选Redis,这样就不用自己引入依赖了,如下图:
在这里插入图片描述
然后在application.properties中添加以下配置信息:

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

编写代码
IRedisServie.java:

  1. public interface IRedisService {
  2. // 加入元素
  3. void setValue(String key, Map<String, Object> value);
  4. // 加入元素
  5. void setValue(String key, String value);
  6. // 加入元素
  7. void setValue(String key, Object value);
  8. // 获取元素
  9. Object getMapValue(String key);
  10. // 获取元素
  11. Object getValue(String key);
  12. // 删除单个key值
  13. Boolean deleteValue(String key);
  14. // 清空redis数据
  15. void delAll();
  16. }

RedisServiceImpl.java:

  1. @Service
  2. public class RedisServiceImpl implements IRedisService {
  3. @Autowired
  4. StringRedisTemplate stringRedisTemplate;
  5. @Autowired
  6. RedisTemplate redisTemplate;
  7. @Override
  8. public void setValue(String key, Map<String, Object> value) {
  9. setRedisTemplate();
  10. ValueOperations vo = redisTemplate.opsForValue();
  11. vo.set(key, value);
  12. }
  13. @Override
  14. public void setValue(String key, String value) {
  15. setRedisTemplate();
  16. ValueOperations<String, Object> vo = redisTemplate.opsForValue();
  17. vo.set(key, value);
  18. }
  19. @Override
  20. public void setValue(String key, Object value) {
  21. setRedisTemplate();
  22. ValueOperations<String, Object> vo = redisTemplate.opsForValue();
  23. vo.set(key, value);
  24. }
  25. @Override
  26. public Object getValue(String key) {
  27. ValueOperations<String, String> vo = redisTemplate.opsForValue();
  28. return vo.get(key);
  29. }
  30. @Override
  31. public Object getMapValue(String key) {
  32. ValueOperations<String, String> vo = redisTemplate.opsForValue();
  33. return vo.get(key);
  34. }
  35. @Override
  36. public Boolean deleteValue(String key) {
  37. return redisTemplate.delete(key);
  38. }
  39. @Override
  40. public void delAll() {
  41. Set<String> keys = stringRedisTemplate.keys("*");
  42. assert keys != null;
  43. Iterator<String> it = keys.iterator();
  44. while (it.hasNext()) {
  45. // 循环删除
  46. stringRedisTemplate.delete(it.next());
  47. }
  48. }
  49. public void setRedisTemplate() {
  50. redisTemplate.setKeySerializer(new StringRedisSerializer());
  51. }
  52. }

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

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

发表评论

表情:
评论列表 (有 0 条评论,227人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Springboot连接Redis

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