avatar
文章
43
标签
22
分类
12

主页
博文
  • 分类
  • 标签
  • 归档
关于笔者
墨枫个人博客
搜索
主页
博文
  • 分类
  • 标签
  • 归档
关于笔者
定时任务实现-Redisson实现分布式锁
发表于2022-12-08|伙伴匹配系统
定时任务实现-Redisson实现分布式锁主要内容(后端): 分布式定时任务执行控制 锁的概念 分布式锁概念和常见问题 分布式锁实践 定时任务实现 Spring Scheduler (spring boot 默认整合了,推荐使用这种方式) Quartz (独立于 Spring 存在的定时任务框架) XXL-Job 之类的分布式任务调度平台(界面 + SDK) 采用第一种方式: 主类开启 @EnableScheduling 给要定时执行的方法添加 @Scheduling , 指定 cron 表达式或者执行频率 cron 表达式 用现成的工具即可:https://cron.qqe2.com/https://www.matools.com/crontab/ 控制定时任务的执行要控制定时任务在同一时间只有 1 台服务器能执行 原因: 浪费资源 脏数据,比如重复插入 如何做? 方案种类: 分离定时任务程序和主程序,只在 1 个服务器运行定时任务,成本太大 写死配置,每个服务器都执行定时任务,但是只有 ip 符合配置的服务器才真正执行业务逻辑,其他的直接返回。成本最低;但是我们的 ...
Redis 缓存实现-定时任务
发表于2022-12-08|伙伴匹配系统redis
7、Redis 缓存实现-定时任务主要内容(后端):1.缓存和分布式缓存讲解2.Redis介绍(5种数据结构等)3.Java操作Redis的方法(4种方法+对比分析)4.Java Redis Template序列化(包含源码追踪)5.首页缓存开发与注意事项6.缓存预热设计与实现7.定时任务介绍和实现 数据查询慢怎么办? 用缓存:提前把数据取出来保存好(通过保存到读写更快的介质,比如内存) 用定时任务:预加载缓存,定时更新缓存 思考:多个机器要执行同一个任务吗? 可以用用分布式锁解决:控制同一时间只有一台机器去执行定时任务,其他机器不用重复执行了 缓存分类分布式缓存: Redis(分布式缓存) mencached(分布式) Etcd (云原生架构的一个分布式存储,存储配置,扩容能力) 单机缓存: ehcache Java 内存集合,如 HashMap Caffeine (Java 内存缓存性能之王,高性能) Google Guava Redis 缓存实现NoSQL 数据库 key-value 存储系统(区别于 MYSQL 它存储的是键值对) Redis 数据结构基本数据结构 ...
Spring 注解使用
发表于2022-12-08|伙伴匹配系统
Spring 注解使用@ConfigurationProperties 该注解有一个prefix属性,通过指定的前缀,绑定配置文件中的配置,该注解可以放在类上,也可以放在方法上 当将该注解作用于方法上时,如果想要有效的绑定配置,那么该方法需要有@Bean注解且所属Class需要有@Configuration注解。 application.yml 配置文件的 12345spring: redis: port: 6379 host: localhost database: 1 使用参考代码 123456789101112131415161718@Configuration@Data@ConfigurationProperties(prefix = "spring.redis")public class RedissonConfig { private String host; private String port; @Bean public RedissonClient redissonClient()&# ...
Session 共享实现
发表于2022-12-08|伙伴匹配系统
Session 共享实现1. 安装 Redis官网:https://redis.io/ windows 下载: Redis 5.0.14 下载: 链接:https://pan.baidu.com/s/1XcsAIrdeesQAyQU2lE3cOg 提取码:vkoi redis 管理工具 quick redis:https://quick123.net/ 引入 redis,能够操作 redis: 123456<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.6.4</version&g ...
Redisson 实现分布式锁
发表于2022-12-08|伙伴匹配系统
Redisson 实现分布式锁Redisson 是一个 Java 操作 Redis 的客户端,提供了大量的分布式数据集来简化对 Redis 的操作和使用,可以让开发者像使用本地集合一样使用 Redis(继承了和 Java 相同的集合类) 关键词:Java Redis 客户端,分布式数据结构,实现了很多 Java 里支持的集合 两种引用方式 spring boot starter 引入(不推荐,因为版本迭代太快,容易冲突):https://github.com/redisson/redisson/tree/master/redisson-spring-boot-starter 直接引入:https://github.com/redisson/redisson#quick-start (1)引入依赖 12345<dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.17.5&l ...
Redis 缓存实现
发表于2022-12-08|伙伴匹配系统
Redis 缓存实现NoSQL 数据库 key-value 存储系统(区别于 MYSQL 它存储的是键值对) Redis 数据结构基本数据结构: String 字符串类型:name:”mofeng” List 列表:names:[“mofeng”,”dogmofeng”,”lu”] Set 集合:names:[“mofeng”,”lu”] (值不能重复) Hash 哈希:nameAge:{“mofeng”:1,”dogLu”:2} Zset 集合:names[mofeng -9, doglu -12] (适合排行榜) 高级: bloomfilter(布隆过滤器,主要从大量的数据中快速过滤值,比如邮件黑名单拦截) geo(计算地理位置) hyperloglog(pv/uv) pub/sub(发布订阅,类以消息队列) BitMap(1001010101010101010101010101) 自定义序列化为了防止写入 Redis 的数据乱码、浪费空间等,可以自定义序列化器, 新建 RedisTemplateConfig 类代码如下: 123456789101112 ...
Mybatis plus 实现分页
发表于2022-12-08|伙伴匹配系统
Mybatis plus 分页创建 MyBatisPlusConfig 类 123456789101112131415161718192021import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;import org.mybatis.spring.annotation.MapperScan;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configuration@MapperScan("com.yupi.yupao.mapper")publ ...
整合 Swagger + Knife4j 接口文档
发表于2022-12-08|开源组件
Java 后端整合 Swagger + Knife4j 接口文档官方文档: https://doc.xiaominfo.com/docs/quick-start 1.引入依赖 1234567<!--引入Knife4j的官方start包,Swagger2基于Springfox2.10.5项目--><dependency> <groupId>com.github.xiaoymin</groupId> <!--使用Swagger2--> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.9</version></dependency> 2.添加配置类,注意:basePackage 需要填写 controller 的路径 千万注意:线上环境不要把接口暴露出去!!!可以通过在 SwaggerConfig 配置文件开头加上 @Profile({"dev ...
伙伴匹配系统 bug
发表于2022-12-08
bug 解决前后端分离跨域问题1@CrossOrigin(origins = {"http://127.0.0.1:5173/"}, allowCredentials = "true") 或者添加配置类 123456789101112131415161718192021import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configurationpublic class WebMvcConfg implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistr ...
匹配算法-优化
发表于2022-12-08|伙伴匹配系统
12-13 匹配算法-优化主要内容: 开发完成个人队伍页面、队伍检索等功能(前端、后端) 开发用户匹配功能(编辑距离算法) 优化用户匹配功能后端,开发前端用户匹配模式 优化前端加载效果,使用骨架屏 优化前端队伍操作权限 实现前端导航标题动态切换 优化前端、完善部分功能 前端不同页面怎么传递数据? url querystring (xxx?id=1) 比较适用于页面跳转 url (/team/:id,xxx/1) hash (/team#1) localStorage context(全局变量,同页面或整个项目要访问的公共变量) 随机匹配需求背景:为了帮助大家更快地发现和自己兴趣相同的朋友 思考:匹配一个还是多个? 答:匹配多个,并且按照匹配的相似度从高到低排序 思考:怎么匹配?(根据什么来进行匹配?) 答:根据标签 tags 还可以根据 user_team 匹配加入相同队伍的用户 问题本质:找到有相似标签的用户 1.怎么匹配? 找到有共同标签最多的用户(Top N) 共同标签越多,分数越高,月排在前面 如没有匹配的用户,随机推荐( ...
12345
avatar
墨枫
墨枫个人笔记总结与分享
文章
43
标签
22
分类
12
Follow Me
最新文章
若依框架使用教程
若依框架使用教程2023-08-07
若依生成代码
若依生成代码2023-08-07
若依整合 ECharts
若依整合 ECharts2023-08-07
读《今日摄影》
读《今日摄影》2023-06-28
一、聚合搜索平台简介
一、聚合搜索平台简介2023-05-03
分类
  • API 开放平台8
  • git1
  • 伙伴匹配系统11
    • redis1
    • 数据库1
  • 墨枫的读书感想2
  • 开源组件2
  • 数据库8
标签
ECharts EasyExcel GitHub JSON Mybatis RabbitMQ SQL Session bug redis spring注解 分布式 定时任务 开源项目 数据库 星球项目 算法 索引 读书感想 跨域 锁 项目上线
归档
  • 八月 20233
  • 六月 20231
  • 五月 20234
  • 四月 20231
  • 二月 20231
  • 一月 20232
  • 十二月 202229
  • 十一月 20222
网站资讯
文章数目 :
43
本站访客数 :
2430
本站总访问量 :
3998
最后更新时间 :
10 个月前
©2022 - 2024 By 墨枫
框架 Hexo|主题 Butterfly
桂ICP备2022010811号-1
搜索
数据库加载中