广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot集成Redis如何使用RedisRepositories
  • 181
分享到

SpringBoot集成Redis如何使用RedisRepositories

2023-06-29 12:06:30 181人浏览 独家记忆
摘要

这篇“SpringBoot集成Redis如何使用RedisRepositories”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这

这篇“SpringBoot集成Redis如何使用RedisRepositories”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springBoot集成Redis如何使用RedisRepositories”文章吧。

    SpringBoot集成Redis

     1.添加redis依赖

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

    2.在application.properties中添加redis配置信息

    spring.redis.host=127.0.0.1# Redis服务器连接端口spring.redis.port=6379# Redis服务器连接密码(默认为空)spring.redis.passWord=# 连接池最大连接数(使用负值表示没有限制)spring.redis.lettuce.pool.max-active=8# 连接池最大阻塞等待时间(使用负值表示没有限制)spring.redis.lettuce.pool.max-wait=-1# 连接池中的最大空闲连接spring.redis.lettuce.pool.max-idle=8# 连接池中的最小空闲连接spring.redis.lettuce.pool.min-idle=0# 连接超时时间(毫秒)spring.redis.timeout=30000

    3.SpringBoot启动类中添加注解配置

    @EnableCaching@EnableRedisRepositories//注解开启使用RedisRepositories//CRUD操作将会操作redis中的数据@SpringBootApplicationpublic class RedisApplication {     public static void main(String[] args) {        SpringApplication.run(RedisApplication.class, args);    } }

    4.创建实体类Entity

    @Data@RedisHash("user")//RedisHash非常重要//user表示在redis中新建user集合//之后所有的UserEntity的保存操作全部会保存在user这个集合中//保存时Key的格式为——user:idpublic class UserEntity{    @Id    private Long id;     private String name;     private Integer age;     private Date createTime = new Date();}

    5.创建Dao层&mdash;&mdash;数据操作层

    @Repositorypublic interface UserDao extends CrudRepository<UserEntity,Long> {}

    6.创建Service层&mdash;&mdash;服务层

    @Servicepublic class UserService {     @Autowired    private UserDao userDao; //因为使用了RedisRepositories,所以简单的crud将不用使用RedisTemplate//    @Autowired//    private RedisTemplate redisTemplate;          public void save(UserEntity user){        //redisTemplate.opsForValue().set(new Random().nextDouble() + "",user);         userDao.save(user);     }         public UserEntity findOne(Long id){         //UserEntity user = (UserEntity) redisTemplate.opsForValue().get(key);         UserEntity user = userDao.findById(id).get();         return user;    }}

    7.创建Controller层&mdash;&mdash;控制层

    @RestController@RequestMapping("user")public class UserController {     @Autowired    private UserService userService;         @GetMapping("save")    public String save(){         UserEntity user = new UserEntity();         user.setName(String.valueOf(new Random().nextInt(100000)));         user.setAge(new Random().nextInt(100000));         userService.save(user);         System.out.println(user.toString());         return "success";    }         @GetMapping("find/{id}")    public String find(@PathVariable Long id){       UserEntity user = userService.findOne(id);         System.out.println(user);        return "success";    }}

    8.redis配置类

    @Configurationpublic class RedisConfig {     @Bean    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {        RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();        template.setConnectionFactory(factory);        Jackson2JSONRedisSerializer jackson2jsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);        ObjectMapper om = new ObjectMapper();        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);        jackson2JsonRedisSerializer.setObjectMapper(om);        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();        // key采用String的序列化方式        template.seTKEySerializer(stringRedisSerializer);        // hash的key也采用String的序列化方式        template.setHashKeySerializer(stringRedisSerializer);        // value序列化方式采用jackson        template.setValueSerializer(jackson2JsonRedisSerializer);        // hash的value序列化方式采用jackson        template.setHashValueSerializer(jackson2JsonRedisSerializer);        template.afterPropertiesSet();        return template;    }}

    Redis中的结构为

    SpringBoot集成Redis如何使用RedisRepositories

    redis封装工具

    @Componentpublic class RedisUtils { @Autowiredprivate RedisTemplate<String, Object> redisTemplate; // =============================common============================ public boolean expire(String key, long time) {try {if (time > 0) {redisTemplate.expire(key, time, TimeUnit.SECONDS);}return true;} catch (Exception e) {e.printStackTrace();return false;}} public long getExpire(String key) {return redisTemplate.getExpire(key, TimeUnit.SECONDS);} public boolean hasKey(String key) {try {return redisTemplate.hasKey(key);} catch (Exception e) {e.printStackTrace();return false;}} @SuppressWarnings("unchecked")public void del(String... key) {if (key != null && key.length > 0) {if (key.length == 1) {redisTemplate.delete(key[0]);} else {redisTemplate.delete(CollectionUtils.arrayToList(key));}}}// ============================String============================= public  Object get(String key) {return key == null ? null : redisTemplate.opsForValue().get(key);} public boolean set(String key, Object value) {try {redisTemplate.opsForValue().set(key, value);return true;} catch (Exception e) {e.printStackTrace();return false;}} public boolean set(String key, Object value, long time) {try {if (time > 0) {redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);} else {set(key, value);}return true;} catch (Exception e) {e.printStackTrace();return false;}} public long incr(String key, long delta) {if (delta < 0) {throw new RuntimeException("递增因子必须大于0");}return redisTemplate.opsForValue().increment(key, delta);} public long decr(String key, long delta) {if (delta < 0) {throw new RuntimeException("递减因子必须大于0");}return redisTemplate.opsForValue().increment(key, -delta);}// ================================Map================================= public Object hget(String key, String item) {return redisTemplate.opsForHash().get(key, item);} public Map<Object, Object> hmget(String key) {return redisTemplate.opsForHash().entries(key);} public boolean hmset(String key, Map<String, Object> map) {try {redisTemplate.opsForHash().putAll(key, map);return true;} catch (Exception e) {e.printStackTrace();return false;}} public boolean hmset(String key, Map<String, Object> map, long time) {try {redisTemplate.opsForHash().putAll(key, map);if (time > 0) {expire(key, time);}return true;} catch (Exception e) {e.printStackTrace();return false;}} public boolean hset(String key, String item, Object value) {try {redisTemplate.opsForHash().put(key, item, value);return true;} catch (Exception e) {e.printStackTrace();return false;}} public boolean hset(String key, String item, Object value, long time) {try {redisTemplate.opsForHash().put(key, item, value);if (time > 0) {expire(key, time);}return true;} catch (Exception e) {e.printStackTrace();return false;}} public void hdel(String key, Object... item) {redisTemplate.opsForHash().delete(key, item);} public boolean hHasKey(String key, String item) {return redisTemplate.opsForHash().hasKey(key, item);} public double hincr(String key, String item, double by) {return redisTemplate.opsForHash().increment(key, item, by);} public double hdecr(String key, String item, double by) {return redisTemplate.opsForHash().increment(key, item, -by);}// ============================set============================= public Set<Object> sGet(String key) {try {return redisTemplate.opsForSet().members(key);} catch (Exception e) {e.printStackTrace();return null;}} public boolean sHasKey(String key, Object value) {try {return redisTemplate.opsForSet().isMember(key, value);} catch (Exception e) {e.printStackTrace();return false;}} public long sSet(String key, Object... values) {try {return redisTemplate.opsForSet().add(key, values);} catch (Exception e) {e.printStackTrace();return 0;}} public long sSetAndTime(String key, long time, Object... values) {try {Long count = redisTemplate.opsForSet().add(key, values);if (time > 0)expire(key, time);return count;} catch (Exception e) {e.printStackTrace();return 0;}} public long sGetSetSize(String key) {try {return redisTemplate.opsForSet().size(key);} catch (Exception e) {e.printStackTrace();return 0;}} public long setRemove(String key, Object... values) {try {Long count = redisTemplate.opsForSet().remove(key, values);return count;} catch (Exception e) {e.printStackTrace();return 0;}}// ===============================list================================= public List<Object> lGet(String key, long start, long end) {try {return redisTemplate.opsForList().range(key, start, end);} catch (Exception e) {e.printStackTrace();return null;}} public long lGetListSize(String key) {try {return redisTemplate.opsForList().size(key);} catch (Exception e) {e.printStackTrace();return 0;}} public Object lGetIndex(String key, long index) {try {return redisTemplate.opsForList().index(key, index);} catch (Exception e) {e.printStackTrace();return null;}} public boolean lSet(String key, Object value) {try {redisTemplate.opsForList().rightPush(key, value);return true;} catch (Exception e) {e.printStackTrace();return false;}} public boolean lSet(String key, Object value, long time) {try {redisTemplate.opsForList().rightPush(key, value);if (time > 0)expire(key, time);return true;} catch (Exception e) {e.printStackTrace();return false;}} public boolean lSet(String key, List<Object> value) {try {redisTemplate.opsForList().rightPushAll(key, value);return true;} catch (Exception e) {e.printStackTrace();return false;}} public boolean lSet(String key, List<Object> value, long time) {try {redisTemplate.opsForList().rightPushAll(key, value);if (time > 0)expire(key, time);return true;} catch (Exception e) {e.printStackTrace();return false;}} public boolean lUpdateIndex(String key, long index, Object value) {try {redisTemplate.opsForList().set(key, index, value);return true;} catch (Exception e) {e.printStackTrace();return false;}} public long lRemove(String key, long count, Object value) {try {Long remove = redisTemplate.opsForList().remove(key, count, value);return remove;} catch (Exception e) {e.printStackTrace();return 0;}}}

    以上就是关于“SpringBoot集成Redis如何使用RedisRepositories”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

    --结束END--

    本文标题: SpringBoot集成Redis如何使用RedisRepositories

    本文链接: https://www.lsjlt.com/news/324800.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • SpringBoot集成Redis如何使用RedisRepositories
      这篇“SpringBoot集成Redis如何使用RedisRepositories”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
      99+
      2023-06-29
    • SpringBoot集成Redis—使用RedisRepositories详解
      目录SpringBoot集成Redis 1.添加redis依赖2.在application.properties中添加redis配置信息3.SpringBoot启动类中添加...
      99+
      2022-11-13
    • SpringBoot集成如何使用Redis
      小编给大家分享一下SpringBoot集成如何使用Redis,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!SpringBoot集成使用redisJedis 是 Redis 官方推出的一款面向 Java 的客户端,提供了很多...
      99+
      2023-06-29
    • SpringBoot集成Redis使用Lettuce
              Redis是最常用的KV数据库,Spring 通过模板方式(RedisTemplate)提供了对Redis的数据查询和操作功能。本文主要介绍基于RedisTemplate + lettuce方式对Redis进行查询和操作...
      99+
      2023-09-05
      redis spring boot java
    • 怎么使用springBoot集成redis
      这篇文章将为大家详细讲解有关怎么使用springBoot集成redis,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。REmote DIctionary Server(Re...
      99+
      2022-10-18
    • 使用springBoot集成redis的案例
      小编给大家分享一下使用springBoot集成redis的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!springboot...
      99+
      2022-10-18
    • SpringBoot集成使用Redis及搭建过程
      目录SpringBoot集成使用redis搭建1.导入jar包2.配置连接redis3.添加配置类RedisConfig4.注入RedisTemplate5.测试和使用使用实例:Sp...
      99+
      2022-11-13
    • springboot集成redis并使用redis生成全局唯一索引ID
      部署redis Windows下搭建Reids本地集群,可参考https://www.jb51.net/article/242520.htm springboot集成 redis p...
      99+
      2022-11-13
    • springboot集成redis的使用注解有哪些
      这篇文章给大家分享的是有关springboot集成redis的使用注解有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。redis简介:Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI&...
      99+
      2023-06-29
    • springboot集成redis存对象乱码如何解决
      本篇内容主要讲解“springboot集成redis存对象乱码如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot集成redis存对象乱码如何解决”吧!springboot...
      99+
      2023-07-02
    • 一起来看看springboot集成redis的使用注解
      目录redis简介:引入依赖:编写application.properties文件编写配置类:springboot的redis注解介绍(1)缓存@Cacheable(2)缓存@Cac...
      99+
      2022-11-13
    • 使用SpringBoot如何实现集成mybatis
      使用SpringBoot如何实现集成mybatis?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、使用mybatis-spring-boot-starter添...
      99+
      2023-05-31
      springboot mybatis
    • springboot如何集成shiro
      这篇文章主要介绍了springboot如何集成shiro,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、项目整体介绍:项目整体的结构如下图所示,项目整体采用 springb...
      99+
      2023-06-15
    • SpringBoot如何集成RabbitMQ
      这篇文章主要介绍“SpringBoot如何集成RabbitMQ”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot如何集成RabbitMQ”文章能帮助大家解决问题。一、RabbitMQ...
      99+
      2023-06-30
    • springboot如何集成websocket
      这篇文章主要介绍了springboot如何集成websocket,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. 原生注解pom.xml<dependency>...
      99+
      2023-06-22
    • SpringBoot如何集成swagger
      小编给大家分享一下SpringBoot如何集成swagger,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。本文简单介绍了在项目中集成swagge...
      99+
      2023-05-30
      spring boot swagger
    • Springboot如何集成Elasticsearch
      小编给大家分享一下Springboot如何集成Elasticsearch,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!集成配置步骤步骤1:加入 Maven 相关依...
      99+
      2023-06-22
    • SpringBoot如何集成Swagger3
      这篇文章主要介绍SpringBoot如何集成Swagger3,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一,什么是swagger1,  Swagger 是一个规范和完整的文档框架,   ...
      99+
      2023-06-22
    • SpringBoot如何集成MaxCompute
      这篇文章主要介绍“SpringBoot如何集成MaxCompute”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot如何集成MaxCompute”文章能帮助大家解决问题。1、SDK方...
      99+
      2023-07-06
    • 使用springboot如何实现对mybatis集成
      本篇文章为大家展示了使用springboot如何实现对mybatis集成,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在pom文件中添加mybatis的依赖: <dependency>...
      99+
      2023-05-31
      springboot mybatis
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作