springboot整合redis进行数据操作

来源:互联网 发布:根据端口号查找进程 编辑:程序博客网 时间:2024/05/21 17:39

redis是一种常见的nosql,日常开发中,我们使用它的频率比较高,因为它的多种数据接口,很多场景中我们都可以用到,并且redis对分布式这块做的非常好。

springboot整合redis比较简单,并且使用redistemplate可以让我们更加方便的对数据进行操作。

1、添加依赖

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

2、在application.properties中加入相关配置

spring.redis.database=0 spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password= spring.redis.pool.max-idle=8 spring.redis.pool.min-idle=0 spring.redis.pool.max-active=8 spring.redis.pool.max-wait=-1 spring.redis.timeout=5000 

3、编写配置类

import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; @Configuration @EnableCaching public class RedisConfig {   @Bean   public CacheManager cacheManager(RedisTemplate<?,?> redisTemplate) {    CacheManager cacheManager = new RedisCacheManager(redisTemplate);    return cacheManager;   }   @Bean   public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {    RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();    redisTemplate.setConnectionFactory(factory);    return redisTemplate;   }   @Bean   public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory factory) {    StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();    stringRedisTemplate.setConnectionFactory(factory);    return stringRedisTemplate;   } } 

这里定义了两个bean,一个是redisTemplate,另一个是stringRedisTemplate,它们的序列化方式不同,前者默认jdk序列方式,后者默认string的序列化方式,后者一般专门用于存储string格式,前者我们可以用来保存对象等,这里我们都配置上,根据不同业务进行不同使用。

4、编写实体类

public class User implements Serializable{  /**   *   */  private static final long serialVersionUID = 3221700752972709820L;  private int id;  private String name;  private int age;  public int getId() {   return id;  }  public void setId(int id) {   this.id = id;  }  public String getName() {   return name;  }  public void setName(String name) {   this.name = name;  }  public int getAge() {   return age;  }  public void setAge(int age) {   this.age = age;  }  public User(int id, String name, int age) {   super();   this.id = id;   this.name = name;   this.age = age;  } } 

5、编写测试service

@Service public class UserService {  @Autowired  private StringRedisTemplate stringRedisTemplate;  @Autowired  private RedisTemplate<String, Object> redisTemplate;  public void set(String key, User user) {   redisTemplate.opsForValue().set(key, user);  }  public User get(String key) {   return (User) redisTemplate.boundValueOps(key).get();  }  public void setCode(String key, String code) {   stringRedisTemplate.opsForValue().set(key, code, 60, TimeUnit.SECONDS);  }  public String getCode(String key) {   return stringRedisTemplate.boundValueOps(key).get();  } } 

这里我们模拟两种操作,一种是根据key存储user对象,另一种是存储key value均为string的操作,并且赋予数据过期时间,这种操作我们可以用于验证码存储,在setcode方法中,我们存储了一个有效时长为60s的数据,当60s过后,数据会自动销毁。

6、编写测试controller访问

@RestController @RequestMapping("rest_redis") public class RedisController {  @Resource  private UserService userService;  @GetMapping("set")  public void set() {   userService.set("key1", new User(1, "meepoguan", 26));  }  @GetMapping("get")  public String get() {   return userService.get("key1").getName();  }  @GetMapping("stringset")  public void stringset() {   userService.setCode("stringkey", "meepoguan_coke");  }  @GetMapping("stringget")  public String stringget() {   return userService.getCode("stringkey");  } } 

对service中的方法进行测试。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 调档函过期了怎么办 临时工想涨工资怎么办 辞职了职称公需课怎么办 一师一优课有账号忘记密码怎么办? 长沙转户口档案怎么办 二战迁户口档案怎么办 本人户口页丢失怎么办 户口迁出原籍档案怎么办 户口本丢了一页怎么办 户口本少了一页怎么办 户口页丢了怎么办 公司要社保卡怎么办 公务员面试缺考怎么办 word文档未标签怎么办 暂住证到期了怎么办t 考驾照没暂住证怎么办 南京暂住证过期了怎么办 南京桥北暂住证怎么办 冠状沟红痒一年多了怎么办 介仓身上痒怎么办 专升本考试怎么办 专升本毕业论文怎么办 手机扫码模糊怎么办 iphone相册闪退怎么办 快件签收扫描失败怎么办 创业迷茫的时候怎么办 月经期间腰酸痛怎么办 被重庆微跑骗了怎么办 遴选到中央房子怎么办 转了户口社保怎么办 政府咨询电话打不通怎么办 公务员准考证丢了怎么办 行测老打40多分怎么办 网上没有报名的怎么办? 上大学转户口怎么办 梅菜扣肉勾芡怎么办 有个精神病妈妈怎么办 妈得了精神病该怎么办 思维不正常的人怎么办 妈妈是个精神病怎么办 我老婆有精神病怎么办