1.首先介绍项目启动时缓存数据库数据到redis(以缓存用户表数据为例)

1.1.创建UserCache类

/***@Description 用户缓存*@param*@return*@author wang hq*/@Component
public class UserCache {@Autowiredprivate RedisService redisService;@Autowiredprivate UserDao userDao;private static UserCache userCache;@PostConstructpublic void init() {userCache = this;userCache.redisService = this.redisService;userCache.userDao = this.userDao;}/*** @param userDtos* @return* @将数据库查询出来的数据 进行格式化 并存入 map和redis*/public static void init(List<UserDto> userDtos) {userCache.redisService.del(Constant.REDIS_USER);for (UserDto userDto : userDtos) {userCache.redisService.hSet(Constant.REDIS_USER, String.valueOf(userDto.getId()), userDto);}}/*** @param id* @param value* @修改缓存中的数据*/public static void modify(Integer id, UserDto value) {if (value == null && id == null) {new Throwable("id and value is not null!");}//修改userCache.redisService.hSet(Constant.REDIS_USER, String.valueOf(id), value);}/*** @param id* @删除缓存中的数据*/public static void delete(Integer id) {if (id == null) {new Throwable("id is not null!");}userCache.redisService.hDel(Constant.REDIS_USER, String.valueOf(id));}/*** @param users* @删除缓存中的数据*/public static void deleteList(List<Integer> users) {if (users == null) {new Throwable("id is not null!");}for (Integer id : users) {userCache.redisService.hDel(Constant.REDIS_USER, String.valueOf(id));}}/*** @param id* @return* @从缓存中获取appid对应的value*/public static UserDto userDto(Integer id) {if (id != null) {new Throwable("id is not null!");}if (userCache.redisService.hGet(Constant.REDIS_USER, String.valueOf(id)) != null) {return JSONObject.parseObject(JSONObject.toJSONString(userCache.redisService.hGet(Constant.REDIS_USER, String.valueOf(id))), UserDto.class);}UserDto userDto = new UserDto();userDto.setId(id);userDto = userCache.userDao.findOne(userDto, null);modify(id, userDto);return userDto;}
}

1.2.创建DemoRunner

@Order(3)
@Component
public class DemoRunner implements ApplicationRunner {@Autowiredprivate UserDao userDao;@Overridepublic void run(ApplicationArguments applicationArguments) throws Exception {UserCache.init(userDao.findAll(new User(), null));}
}

到这里后启动项目会发现用户数据已缓存到Redis表中

若是做了上面操作后报RedisService注入错误的问题时 可参考https://blog.csdn.net/weixin_45735355/article/details/118308909?spm=1001.2014.3001.5501即可解决

2.CRUD操作时同步到Redis缓存

2.1 插入

Integer flag = userDao.save(user);
if (flag > 0) {UserCache.modify(user.getId(), JSONObject.parseObject(JSONObject.toJSONString(user), UserDto.class));
}

2.2 删除

Integer flag = userDao.delete(user);if (flag > 0) {UserCache.delete(user.getId());}return flag;

更新

Integer flag = userDao.update(user);if (flag > 0) {TypeDictCache.modify(user.getId(), JSONObject.parseObject(JSONObject.toJSONString(user), UserDto.class));}return flag;

Redis随项目启动或CRUD进行缓存数据相关推荐

  1. Springboot项目启动时加载数据库数据到内存

    使用@PostConstruct注解 @Component public class CodeCache {public static Map<String, String> codeMa ...

  2. Java面试总结如何处理项目的高并发、大数据

    1.HTML静态化 如果网站的请求量过大,我们可以将页面静态化提供访问来缓解服务器压力,能够缓解服务器压力加大以及降低数据库数据的频繁交换.适合于某些访问了过大,但是内容不经常改变的页面,如首页.新闻 ...

  3. Java项目使用Redis缓存数据

    Java项目使用Redis缓存数据 一.Redis的下载安装 1.下载gcc编译器 yum install gcc-c++ 安装完成后检查是否安装成功,查看版本 gcc --version 2.使用w ...

  4. 基于 abp vNext 和 .NET Core 开发博客项目 - 使用Redis缓存数据

    基于 abp vNext 和 .NET Core 开发博客项目 - 使用Redis缓存数据 转载于:https://github.com/Meowv/Blog 在日志记录中使用的静态方法有人指出写法不 ...

  5. springboot项目启动报连接redis的相关错误

    1.报错信息: 17:14:57.951 [boundedElastic-1] WARN o.s.b.a.r.RedisReactiveHealthIndicator - [handleFailure ...

  6. SpringBoot 2.x 使用Redis作为项目数据缓存

    一.添加依赖 <!-- 添加缓存支持 --><dependency><groupId>org.springframework.boot</groupId> ...

  7. redis一般缓存什么样数据_门户数据展示_Redis缓存数据

    学习主题:门户数据展示_Redis缓存数据 一.Redis_3主3从集群环境搭建 谈单你对读写分离和主从同步的理解 读写分离:Master负责写数据的操作,salve负责读数据的操作 主从同步:sal ...

  8. redis指定配置文件启动_深入学习 Redis 集群搭建方案及实现原理

    " 在前面的文章中已经介绍了 本文将详细介绍集群,主要内容包括: 集群的作用 集群的搭建方法及设计方案 集群的基本原理 客户端访问集群的方法 实践须知(集群伸缩.故障转移.参数优化等) 集群 ...

  9. SpringBoot使用Redis和MyBatis完成缓存数据的增删改查

    文章目录 1.在Spring Boot中集成Redis 2.配置Redis类 关于Redis Template中序列化和反序列化配置的解释 3.创建测试实体类 4.实现实体和数据表的映射关系 5.创建 ...

  10. linux redis客户端_10个 Linux 顶级开源缓存工具

    可靠的分布式计算系统和应用程序已成为杰出业务的基石,尤其是在自动化和管理关键任务业务流程以及向客户提供服务方面.作为这些系统和应用程序的开发人员和系统管理员,您应该提供各种信息技术(IT)解决方案,以 ...

最新文章

  1. 帝国cms二次开发之文件夹的功能说明
  2. 怎么判断网络回路_电源纹波要怎么测?
  3. 单行、多行文本超出显示省略号
  4. linux常用计划任务,浅谈:linux cron 计划任务常用符号小结
  5. python 人脸关键点检测_opencv+python+dlib人脸关键点检测、实时检测
  6. 成功解决 ProxyError: Conda cannot proceed due to an error in your proxy configuration
  7. 爬虫分页爬取猎聘_想把python爬虫了解透彻吗?一起盘它 ! !
  8. JavaScript基本资料
  9. 2015年计算机维修记录表,2015年 主题教学记录表.doc
  10. java window.onload_JavaScript window.onload
  11. oracle 查询月份
  12. steam linux不能运行,ubuntu 16.04下不能启动Steam的解决方法
  13. 计算机专业,25岁成985高校博导,13篇顶会!入职半年发ICML,网友:万点暴击...
  14. PerfDog性能狗实测智能手表性能
  15. 韩松手机摄影笔记第八课--手机人物摄影
  16. jQuery动态增加/删除select下来框的option中的selected属性
  17. JDK,JRE以及JVM三者之间的关系
  18. linux安装intel驱动
  19. python学习笔记——tkinter模块
  20. Parse 控制面板

热门文章

  1. Windows Phone开发(33):路径之其它Geometry 转:http://blog.csdn.net/tcjiaan/article/details/7483835...
  2. JavaScript将JSON转换为字符串
  3. 一个很简单的例子,从汇编层次理解函数调用
  4. 生命中的七堂课(转)
  5. docker+阿里云镜像容器进行环境的备份与获取
  6. 大家好,我就是那个提【换手机壳颜色变app主题】需求的“产品经理”
  7. SQL Server 2012入门T-SQL基础篇:(7)Where子句与Having子句的区别
  8. CentOS安装自动补全安装包
  9. Redis异常JedisConnectionException:Read timed out解决笔记
  10. Urlrewritefilter使用说明