业务开发中你用到了哪些算法?

本文通过一个面试场景引入,讲述了如何在业务开发中运用哈希算法进行分库分表,并详细解释了具体的实现策略。同时,文章提及了一致性Hash的概念及其在Memcached、Nginx和MapReduce等场景的应用,讨论了数据倾斜问题,引发读者对更多算法在实际应用中的思考。
摘要由CSDN通过智能技术生成

【这是一猿小讲的第 73 篇原创分享】

S哥:今天去面试啦,简历上写了一句“熟练运用算法于应用中”,面试官问我时,却不知道说啥(很尴尬)......

ME:可以说说 hash 算法,先说说分库分表;然后一致性 hash;然后升华......

年底了,确实有很多默默看机会的盆友,开始躁动了起来。身边很多选手也不例外,身边的 S 哥为了彰显自己牛掰,简历上斗胆撂了一句“熟练运用算法于应用中”,但是当面试官问起时,S 哥却被问的一愣一愣哒。

鉴于此,不妨分享一下我的回答思路,看能否帮你争取点面试分。

先说一个离我们比较近的应用场景。估计多数人还没有经历过分库分表,但是个人感觉,截止到目前稍微有点量级的应用,数据库可能没有拆分,但是订单表应该也被拆分的稀碎啦,这么说你可能不理解,不妨举个栗子。

起初,原有的一张 T_ORDER 足矣满足业务需求,但是随着业务推广,订单表的数据日益增多,数据查询势必会越来越慢,性能是个问题。好的解决方案势必是分开,例如分成 T_ORDER_0、T_ORDER_1、T_ORDER_2 三张滚动表,但是到底该怎么实现这么个策略呢?

码代码的不写点代码,确实不是那么回事儿!

@Test
public void splitTable() throws ParseException 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于SSM框架的流浪动物救助和收养系统采用的具体技术可能包括:Java、Spring、MyBatis、MySQL等技术。算法的使用取决于系统的具体要求,可能会用到推荐算法、搜索算法等。每个功能的具体技术实现可能会有所不同,可以使用前端技术(HTML5、CSS3、JavaScript等)、后端技术(Java、Python等)、数据库技术(MySQL、MongoDB等)、机器学习技术(TensorFlow、PyTorch等)等。 ### 回答2: 基于ssm框架的流浪动物救助和收养系统采用了以下具体技术,并且没有特别使用算法的需求。 1. Spring框架:Spring是一个轻量级的Java开发框架,用于实现依赖注入和面向切面编程。在该系统,Spring框架负责管理各个Bean对象,并提供便捷的依赖注入方式。 2. Spring MVC框架:Spring MVC是一个基于MVC设计模式的开发框架,用于处理用户请求和生成响应。在该系统,Spring MVC框架负责接收用户HTTP请求,调用相应的处理方法,并将处理结果展示给用户。 3. MyBatis框架:MyBatis是一个简化数据库访问的持久层框架,用于管理与数据库之间的数据交互。在该系统,MyBatis框架负责将Java对象与数据库表进行映射,并提供数据库访问的接口和实现。 4. MySQL数据库:MySQL是一个关系型数据库管理系统,用于存储和管理流浪动物相关的数据。在该系统,MySQL被用作数据的持久化存储和查询。 5. HTML/CSS/JavaScript:HTML用于创建系统的网页结构,CSS用于美化网页样式,JavaScript用于实现网页的交互功能和数据验证。 6. Ajax技术:Ajax是一种用于在后台与服务器进行数据交互并异步更新网页内容的技术。在该系统,Ajax技术被用于实现动态加载、提交表单数据等功能,提升用户体验。 7. jQuery框架:jQuery是一个JavaScript库,简化了操作HTML文档、处理事件、动画效果等任务。在该系统,jQuery框架被用于简化JavaScript编码,提高开发效率。 总体来说,该系统采用了Spring、Spring MVC和MyBatis这一经典的ssm框架组合,以构建稳定、高效的流浪动物救助和收养系统。前端使用了HTML/CSS/JavaScript和jQuery来实现网页交互和样式装饰。数据存储和查询使用MySQL数据库,通过MyBatis框架实现与数据库的交互。同时,利用Ajax技术实现了数据的异步加载和提交。 ### 回答3: 基于SSM(Spring+SpringMVC+MyBatis)框架的流浪动物救助和收养系统采用了以下具体技术,并且没有明确提及是否使用算法。 1. 前端技术:系统的前端开发通常使用HTML、CSS和JavaScript进行页面布局和交互效果的设计,同时可以使用jQuery、Bootstrap等前端框架快速开发页面。 2. 后端技术:系统的后端开发主要使用Java语言,借助Spring和SpringMVC框架实现业务逻辑和控制层,以及MyBatis框架进行数据持久化操作。 3. 数据库技术:系统的数据存储使用关系型数据库,通常使用MySQL或Oracle等数据库。通过MyBatis框架进行数据的增删改查操作。 4. 通信技术:系统与客户端之间的交互采用HTTP协议。基于SpringMVC框架提供的控制器,处理前端请求并返回相应的结果。 5. 鉴权与安全技术:系统可能包含用户登录、用户权限控制等功能,可以使用Spring框架提供的Spring Security进行身份认证和权限管理。 6. 日志技术:系统运行过程,可以使用Log4j等日志框架记录关键信息,方便系统排错和监控。 7. 缓存技术:对于一些热点数据或频繁访问的数据,可以使用缓存技术进行优化,如使用Redis进行缓存管理。 具体功能的实现使用以上技术的组合,例如动物信息展示功能可以使用SpringMVC控制器接收前端请求,调用Service层的具体方法查询数据库的动物信息,然后将结果通过SpringMVC返回给前端展示。具体功能的实现需要根据系统的需求和设计进行具体规划和实现,可能会使用到不同的技术和算法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值