- 搜索插入位置(力扣题)
风继续吹..
LeetCode算法题leetcode算法职场和发展前端
题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。来源:力扣(LeetCode)请必须使用时间复杂度为O(logn)的算法示例以及输出结果来源:力扣(LeetCode)示例1:输入:nums=[1,3,5,6],target=5输出:2示例2:输入:nums=[1,3,5,6],target=2输出:1示例3:输入:num
- Redis中的数据类型与适用场景
cooldream2009
数据库redis数据库缓存
目录前言1.字符串(String)1.1特点1.2适用场景2.哈希(Hash)2.1特点2.2适用场景3.列表(List)3.1特点3.2适用场景4.集合(Set)4.1特点4.2适用场景5.有序集合(SortedSet)5.1特点5.2适用场景6.Redis数据类型的选型建议结语前言Redis作为一款高性能的内存数据库,以其卓越的速度和丰富的数据类型广泛应用于各类高并发场景。相较于传统的关系型数
- LeetCode 21Merge Two Sorted Lists 合并两个排序链表 Java
我欲混吃与等死
LeetCodeleetcode链表java
题目:将两个已排序的链表合并在一起。举例1:输入:list1=[1,2,4],list2=[1,3,4];输出:[1,1,2,3,4,4];举例2:输入:list1=[],list2=[];输出:[]举例3:输入:list1=[],list2=[0];输出:[0]解题思路:遍历两个链表,比较节点值来合并链表,当其中一个链表遍历完成时,将另一个链表剩余部分拼入新链表。/***Definitionfo
- Leetcode 160 Intersection of Two Linked Lists
xxxmmc
leetcode算法双指针
题意给定两个链表,找这两个链表第一个公共节点,如果没有返回nullptr题目链接https://leetcode.com/problems/intersection-of-two-linked-lists/description/题解两个指针分别从两个链表(记录为表A,表B)的表头出发,并且记录到表尾移动的步数,得到两个指针移动的步数之差xxx。步数之差为正数,那么把表A的指针移动xxx步,否则移
- 力扣 160 - Intersection of Two Linked Lists. (相交链表) Python双指针
小杨快没头发了
Leetcode刷题
力扣160-IntersectionofTwoLinkedLists.(相交链表)Python双指针原题地址:https://leetcode.com/problems/intersection-of-two-linked-lists/Giventheheadsoftwosinglylinked-listsheadAandheadB,returnthenodeatwhichthetwolistsi
- LeetCode 160 Intersection of Two Linked Lists(链表)
nudt_oys
数据结构LeetCode
Writeaprogramtofindthenodeatwhichtheintersectionoftwosinglylinkedlistsbegins.Forexample,thefollowingtwolinkedlists:A:a1→a2↘c1→c2→c3↗B:b1→b2→b3begintointersectatnodec1.Notes:Ifthetwolinkedlistshavenoin
- [LeetCode]--160. Intersection of Two Linked Lists
杜鲁门
LeetCodeLeetCode算法分析leetcode链表相同尾部算法链表遍历算法算法遍历
Writeaprogramtofindthenodeatwhichtheintersectionoftwosinglylinkedlistsbegins.Forexample,thefollowingtwolinkedlists:A:a1→a2↘c1→c2→c3↗B:b1→b2→b3begintointersectatnodec1.Notes:Ifthetwolinkedlistshavenoin
- 每日一题一一Leetcode128. 最长连续序列 - 力扣
Blue.ztl
写写算法leetcode算法数据结构
每日一题一一Leetcode128.最长连续序列-力扣作者:blue时间:2025.3.14128.最长连续序列-力扣(LeetCode)本题的要求是:给定一个未排序的整数数组nums,找出其中数字连续的最长序列(不要求序列元素在原数组中连续)的长度。本题用排序加遍历的方法非常容易解决,但是算法的效率太低。本题正真的解题思路如下,首先,数组中是有可能出现重复的数字,但是重复的数字其实并不影响我们找
- DAY33 贪心算法Ⅱ
Useee
贪心算法算法
122.买卖股票的最佳时机II-力扣(LeetCode)想到把整体利润分解为每天的利润,就豁然开朗了。classSolution{public:intmaxProfit(vector&prices){intresult=0;for(inti=1;i&nums){intcover=0;if(nums.size()==1)returntrue;for(inti=0;i=nums.size()-1)re
- 如何把master迁出的bug修改分支,合并、删除本地、删除远端
软考真题app
bug
要将fix/xxxxxx_20250319分支合并到master并删除本地及远程分支,请按以下步骤操作:1.切换到master分支并更新gitcheckoutmaster#切换到master分支gitpulloriginmaster#拉取远程master的最新代码2.合并分支到mastergitmergefix/xxxxxx_20250319#将fix/xxxxxx_20250319合并到当前分支
- 万字总结(含理解):git reset、revert、checkout --file、stash、rebase、merge
周里奥
gitgit学习
结尾附基本常用命令gitcommit--amend改写提交gitreset回滚代码仓库gitcheckout--file放弃暂存区的修改gitreset测试过程gitrevert测试过程reset和revert区别gitstash测试过程merge对比rebase模拟冲突产生情况git常用命令gitcommit--amend改写提交重写上一次的提交信息,不会生成新的版本号执行了一次提交,提交信息是
- 蓝桥杯——算法训练——粘木棍
大柠丶
蓝桥杯蓝桥杯算法职场和发展
问题描述有N根木棍,需要将其粘贴成M个长木棍,使得最长的和最短的的差距最小。输入格式第一行两个整数N,M。一行N个整数,表示木棍的长度。输出格式一行一个整数,表示最小的差距样例输入32102040样例输出10数据规模和约定N,M<=7packagecom.study.蓝桥杯.算法训练;importjava.util.Arrays;importjava.util.Scanner;/***@autho
- Kotlin 中list set map
黄毛火烧雪下
Kotlinkotlin开发语言android
给定一个字符串,转成想要的List关键字:filterTo和-=funmain(args:Array){valwords="Alongtimeagoinagalaxyfarfaraway".split("")valshortWords=mutableListOf()words.getShortWordsTo(shortWords,3)println(shortWords)}funList.getS
- 官宣 | Fluss 0.6 发布公告
Apache Flink
flink大数据
Fluss社区很高兴地宣布Fluss0.6.0版本正式发布。这一版本历时3个多月的密集开发,凝聚了全球45位贡献者的智慧与努力,累计完成200+次代码提交。衷心感谢每一位贡献者的支持!此次版本的发布带来了诸多功能亮点:列压缩:保留列裁剪性能的同时,降低6倍存储空间!MergeEngine:新增灵活的主键数据合并策略,满足不同的实时处理场景需求。PrefixLookup:DeltaJoin功能,Fl
- 力扣刷题-热题100题-第20题(c++、python)
weixin_44505472
c++pythonleetcode
48.旋转图像-力扣(LeetCode)https://leetcode.cn/problems/rotate-image/?envType=study-plan-v2&envId=top-100-liked使用辅助矩阵直接创建一个新矩阵来装旋转好的矩阵,不过需要注意的是要将新矩阵的值赋值回原矩阵,在c++中是可以直接=,但python中要注意matrix[:]=matrix1才是赋值,直接=是改
- Oracle SQL 开发实战:高效技巧与核心特性解析
McRfee
sql
OracleSQL开发实战:高效技巧与核心特性解析OracleSQL开发实战:高效技巧与核心特性解析一、引言:OracleSQL的核心优势二、高效SQL编写技巧1.避免全表扫描的黄金法则2.用WITH子句简化复杂查询3.MERGE语句实现智能更新三、Oracle独有特性深度解析1.分析函数:窗口计算的利器2.CONNECTBY层级查询3.虚拟列(VirtualColumn)4.FLASHBACK闪
- leetcode29. 两数相除-medium
智趣代码实验室
Leetcodeleetcodec++
1题目:两数相除官方标定难度:中给你两个整数,被除数dividend和除数divisor。将两数相除,要求不使用乘法、除法和取余运算。整数除法应该向零截断,也就是截去(truncate)其小数部分。例如,8.345将被截断为8,-2.7335将被截断至-2。返回被除数dividend除以除数divisor得到的商。注意:假设我们的环境只能存储32位有符号整数,其数值范围是[−231,231−1]。
- 遗传算法均匀变异
huahua20190514
importnumpyasnpimportrandompop_1=np.array([[1,11,21,9,16,10,8,17],[2,12,22,10,17,11,9,18],[3,13,23,11,18,12,10
- 前缀和处理数组区间之和问题
张同学吧
笔记c++
1.什么是区间和问题“区间和问题”通常指的是涉及计算或处理数组或数列某个子区间(即一段连续元素)的总和的类型问题。这类问题可能有多种变体和不同的复杂度,但基本思想都是在给定的区间内快速计算总和或处理与区间和相关的操作。2.例题1题目描述给定一个整数数组Array,请计算该数组在每个指定区间内元素的总和。输入描述第一行输入为整数数组Array的长度n,接下来n行,每行一个整数,表示数组的元素。随后的
- python中列表排序
hedgehog"
pythonpythonlist
Python中列表的排序方法1.sort()方法2.sorted()方法========================================1.sort()函数,无返回值主要参数:(1)key:用来进行比较的元素,指定可迭代对象的一个元素作为参数来进行排序。(2)reverse:排序规则。reverse=True降序排序reverse=False升序排序(默认)示例1:list1=[5
- 栈 力扣hot100热门面试算法题 面试基础 核心思路 背题 滑动窗口最大值 字符串解码 每日温度 柱状图中最大矩形 有效的括号 最小栈
尘土哥
算法leetcode面试
栈栈的核心思路:每个数都要进栈or队列,但是要及时维护栈or队列,当某元素没有存在的意义时就删掉,关键是思考栈尾什么时候有用与没用。滑动窗口最大值https://leetcode.cn/problems/sliding-window-maximum/题解链接https://leetcode.cn/problems/sliding-window-maximum/solutions/3067170/d
- leetcode日记(108)验证回文串
梭七y
leetcode算法职场和发展
看上去很简单,其实很麻烦。一开始写的递归,但是内存超限……搜了下发现原因是每次递归调用都会创建一个新的字符串副本,这在处理长字符串时会占用大量内存。classSolution{public:boolisPalindrome(strings){if(s.size()==0||s.size()==1)return1;elseif(s[s.size()-1]==s[0]||(s[s.size()-1]-
- 算法之魂:深入剖析数据结构中的七大排序算法
GeminiGlory
数据结构数据结构排序算法算法
目录1.冒泡排序(BubbleSort)2.选择排序(SelectionSort)3.插入排序(InsertionSort)4.希尔排序(ShellSort)5.快速排序(QuickSort)6.归并排序(MergeSort)7.堆排序(HeapSort)在计算机科学领域,排序是一项基础但至关重要的操作。无论你是处理数据库查询结果还是优化搜索效率,了解不同的排序算法及其适用场景都至关重要。本文将介
- 个人学习编程(3-21) leetcode刷题
Rsecret2
编程笔记学习leetcode算法
链接列表的中间值:测试用例1:创建链表[1,2,3,4,5],调用middleNode,预期返回值是3。测试用例2:创建链表[1,2,3,4,5,6],调用middleNode,预期返回值是3。判断长度,然后length/2structListNode*middleNode(structListNode*head){intlength=0;for(structListNode*curr=head;
- JAVA泛型的作用
时光呢
javawindowspython
1.类型安全(TypeSafety)在泛型出现之前,集合类(如ArrayList、HashMap)只能存储Object类型元素,导致以下问题:问题:从集合中取出元素时,需手动强制类型转换,容易因类型不匹配导致运行时错误(如ClassCastException)。//JDK1.4时代:非泛型示例Listlist=newArrayList();list.add("Hello");Integer
- 算法刷题记录——LeetCode篇(1) [第1~100题](持续更新)
Allen Wurlitzer
实战-算法解题算法leetcode职场和发展
更新时间:2025-03-21LeetCode刷题目录:算法刷题记录——专题目录汇总技术博客总目录:计算机技术系列博客——目录页优先整理热门100及面试150,不定期持续更新,欢迎关注!1.两数之和给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以
- 【贪心算法】1、分发饼干
念奕玥
【Java】数据结构与算法javaleetcode贪心算法
贪心算法或贪心思想采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。可用于解决分配问题e.g.leetcode455分发饼干解题思路:目标:尽可能满足越多数量的孩子。根据目标,可以容易想到,先去满足胃口值小的孩子。为了尽量使饼干可以满足更多的孩子,所以要把饼干尺寸大于等于孩子胃口值的饼干中挑尺寸最小的饼干给孩子。满足了这个孩子之后,再采取同样的策略去考虑剩下的孩子,直到
- java常用排序方法集合sort
吗喽对你问好
java开发语言数据结构
1.Arrays.sortArrays.sort是用于对数组进行排序的静态方法,位于java.util.Arrays类中。特点:只能用于数组(包括基本类型数组和对象数组)。对基本类型数组(如int[],double[]等)使用快速排序(Dual-PivotQuicksort)。对对象数组(如Integer[],String[]等)使用归并排序(TimSort)。排序是原地进行的(即直接修改原数组)
- Java常用集合与映射的线程安全问题深度解析
QQ828929QQ
java安全开发语言
Java常用集合与映射的线程安全问题深度解析一、线程安全基础认知在并发编程环境下,当多个线程同时操作同一集合对象时,若未采取同步措施,可能导致以下典型问题:数据竞争:多个线程同时修改数据导致结果不可预测状态不一致:部分线程看到集合的中间状态内存可见性:线程本地缓存与主内存数据不同步死循环风险:特定操作引发无限循环(如JDK7的HashMap扩容)二、典型非线程安全集合问题分析1.ArrayList
- 笔记-LeetCode 787: K 站中转内最便宜的航班
我只是什么都不会而已
算法
题目描述有n个城市通过一些航班连接。给你一个数组flights,其中flights[i]=[fromi,toi,pricei],表示该航班都从城市fromi开始,以价格pricei抵达toi。现在给定所有的城市和航班,以及出发城市src和目的地dst,你的任务是找到出一条最多经过k站中转的路线,使得从src到dst的价格最便宜,并返回该价格。如果不存在这样的路线,则输出-1。代码模板(BFS+最短
- SQL的各种连接查询
xieke90
UNION ALLUNION外连接内连接JOIN
一、内连接
概念:内连接就是使用比较运算符根据每个表共有的列的值匹配两个表中的行。
内连接(join 或者inner join )
SQL语法:
select * fron
- java编程思想--复用类
百合不是茶
java继承代理组合final类
复用类看着标题都不知道是什么,再加上java编程思想翻译的比价难懂,所以知道现在才看这本软件界的奇书
一:组合语法:就是将对象的引用放到新类中即可
代码:
package com.wj.reuse;
/**
*
* @author Administrator 组
- [开源与生态系统]国产CPU的生态系统
comsci
cpu
计算机要从娃娃抓起...而孩子最喜欢玩游戏....
要让国产CPU在国内市场形成自己的生态系统和产业链,国家和企业就不能够忘记游戏这个非常关键的环节....
投入一些资金和资源,人力和政策,让游
- JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释
商人shang
jvm内存
jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。
HotSpot虚拟机GC算法采用分代收
- 页面上调用 QQ
oloz
qq
<A href="tencent://message/?uin=707321921&Site=有事Q我&Menu=yes">
<img style="border:0px;" src=http://wpa.qq.com/pa?p=1:707321921:1></a>
- 一些问题
文强chu
问题
1.eclipse 导出 doc 出现“The Javadoc command does not exist.” javadoc command 选择 jdk/bin/javadoc.exe 2.tomcate 配置 web 项目 .....
SQL:3.mysql * 必须得放前面 否则 select&nbs
- 生活没有安全感
小桔子
生活孤独安全感
圈子好小,身边朋友没几个,交心的更是少之又少。在深圳,除了男朋友,没几个亲密的人。不知不觉男朋友成了唯一的依靠,毫不夸张的说,业余生活的全部。现在感情好,也很幸福的。但是说不准难免人心会变嘛,不发生什么大家都乐融融,发生什么很难处理。我想说如果不幸被分手(无论原因如何),生活难免变化很大,在深圳,我没交心的朋友。明
- php 基础语法
aichenglong
php 基本语法
1 .1 php变量必须以$开头
<?php
$a=” b”;
echo
?>
1 .2 php基本数据库类型 Integer float/double Boolean string
1 .3 复合数据类型 数组array和对象 object
1 .4 特殊数据类型 null 资源类型(resource) $co
- mybatis tools 配置详解
AILIKES
mybatis
MyBatis Generator中文文档
MyBatis Generator中文文档地址:
http://generator.sturgeon.mopaas.com/
该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。
本文使用Markdown进行编辑,但是博客显示效
- 继承与多态的探讨
百合不是茶
JAVA面向对象 继承 对象
继承 extends 多态
继承是面向对象最经常使用的特征之一:继承语法是通过继承发、基类的域和方法 //继承就是从现有的类中生成一个新的类,这个新类拥有现有类的所有extends是使用继承的关键字:
在A类中定义属性和方法;
class A{
//定义属性
int age;
//定义方法
public void go
- JS的undefined与null的实例
bijian1013
JavaScriptJavaScript
<form name="theform" id="theform">
</form>
<script language="javascript">
var a
alert(typeof(b)); //这里提示undefined
if(theform.datas
- TDD实践(一)
bijian1013
java敏捷TDD
一.TDD概述
TDD:测试驱动开发,它的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。
- [Maven学习笔记十]Maven Profile与资源文件过滤器
bit1129
maven
什么是Maven Profile
Maven Profile的含义是针对编译打包环境和编译打包目的配置定制,可以在不同的环境上选择相应的配置,例如DB信息,可以根据是为开发环境编译打包,还是为生产环境编译打包,动态的选择正确的DB配置信息
Profile的激活机制
1.Profile可以手工激活,比如在Intellij Idea的Maven Project视图中可以选择一个P
- 【Hive八】Hive用户自定义生成表函数(UDTF)
bit1129
hive
1. 什么是UDTF
UDTF,是User Defined Table-Generating Functions,一眼看上去,貌似是用户自定义生成表函数,这个生成表不应该理解为生成了一个HQL Table, 貌似更应该理解为生成了类似关系表的二维行数据集
2. 如何实现UDTF
继承org.apache.hadoop.hive.ql.udf.generic
- tfs restful api 加auth 2.0认计
ronin47
目前思考如何给tfs的ngx-tfs api增加安全性。有如下两点:
一是基于客户端的ip设置。这个比较容易实现。
二是基于OAuth2.0认证,这个需要lua,实现起来相对于一来说,有些难度。
现在重点介绍第二种方法实现思路。
前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGe
- jdk环境变量配置
byalias
javajdk
进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置:
1、下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是:jdk-7u79-windows-x64.exe
2、安装jdk-7u79-windows-x64.exe
3、配置环境变量:右击"计算机"-->&quo
- 《代码大全》表驱动法-Table Driven Approach-2
bylijinnan
java
package com.ljn.base;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.uti
- SQL 数值四舍五入 小数点后保留2位
chicony
四舍五入
1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位。
2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后位数。
例如:
select cast(round(12.5,2) as numeric(5,2))  
- c++运算符重载
CrazyMizzz
C++
一、加+,减-,乘*,除/ 的运算符重载
Rational operator*(const Rational &x) const{
return Rational(x.a * this->a);
}
在这里只写乘法的,加减除的写法类似
二、<<输出,>>输入的运算符重载
&nb
- hive DDL语法汇总
daizj
hive修改列DDL修改表
hive DDL语法汇总
1、对表重命名
hive> ALTER TABLE table_name RENAME TO new_table_name;
2、修改表备注
hive> ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comm
- jbox使用说明
dcj3sjt126com
Web
参考网址:http://www.kudystudio.com/jbox/jbox-demo.html jBox v2.3 beta [
点击下载]
技术交流QQGroup:172543951 100521167
[2011-11-11] jBox v2.3 正式版
- [调整&修复] IE6下有iframe或页面有active、applet控件
- UISegmentedControl 开发笔记
dcj3sjt126com
// typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {
// UISegmentedControlStylePlain, // large plain
&
- Slick生成表映射文件
ekian
scala
Scala添加SLICK进行数据库操作,需在sbt文件上添加slick-codegen包
"com.typesafe.slick" %% "slick-codegen" % slickVersion
因为我是连接SQL Server数据库,还需添加slick-extensions,jtds包
"com.typesa
- ES-TEST
gengzg
test
package com.MarkNum;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation
- 为何外键不再推荐使用
hugh.wang
mysqlDB
表的关联,是一种逻辑关系,并不需要进行物理上的“硬关联”,而且你所期望的关联,其实只是其数据上存在一定的联系而已,而这种联系实际上是在设计之初就定义好的固有逻辑。
在业务代码中实现的时候,只要按照设计之初的这种固有关联逻辑来处理数据即可,并不需要在数据库层面进行“硬关联”,因为在数据库层面通过使用外键的方式进行“硬关联”,会带来很多额外的资源消耗来进行一致性和完整性校验,即使很多时候我们并不
- 领域驱动设计
julyflame
VODAO设计模式DTOpo
概念:
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对
- 单例设计模式
hm4123660
javaSingleton单例设计模式懒汉式饿汉式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
&nb
- logback
zhb8015
loglogback
一、logback的介绍
Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-class
- 整合Kafka到Spark Streaming——代码示例和挑战
Stark_Summer
sparkstormzookeeperPARALLELISMprocessing
作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管。本文,Michael详细的演示了如何将Kafka整合到Spark Streaming中。 期间, Michael还提到了将Kafka整合到 Spark Streaming中的一些现状,非常值得阅读,虽然有一些信息在Spark 1.2版
- spring-master-slave-commondao
王新春
DAOspringdataSourceslavemaster
互联网的web项目,都有个特点:请求的并发量高,其中请求最耗时的db操作,又是系统优化的重中之重。
为此,往往搭建 db的 一主多从库的 数据库架构。作为web的DAO层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数