一个键盘码代码,两只黄鹂名翠柳

一致性哈希算法

普通的哈希算法采用简单取模的方式,将缓存服务器进行散列,通常情况下是没有问题的,但是当缓存服务器的个数发生变动时,将会产生较大的影响如上图所示,之前有4台缓存服务器,当增加1台缓存服务器之后,除数的变化(4 -> 5)导致求模结果变化,所有缓存查询均未命中即缓存服务器的个数发生变化时,在一段时间内(缓存重建完毕之前),会有大量缓存查询未命中,导致这段时间内的服务整体性能下降特别严重一致性哈希算法能有效降低服务器个数变化对整体缓存的影响,基本实现原理是将Hash函数的值域空间组织成一个圆环,将服务器节点进行哈希,并将哈希结果映射到圆环上,当有一个写入缓存的请求到来时,使用相同的Hash函数,计算Key的哈希值在圆环上对应的位置,按顺时针方向,将请求定位至离其最近的服务器节点如下图所见,当增加一台缓存服务器Server5后,Server4和Serv 查看全文

2018年湘潭大学程序设计竞赛—— 吃货

题目描述 作为一个标准的吃货,mostshy又打算去联建商业街觅食了。混迹于商业街已久,mostshy已经知道了商业街的所有美食与其价格,而且他给每种美食都赋予了一个美味度,美味度越高表示他越喜爱这种美食。mostshy想知道,假如带t元去商业街,只能吃一种食物,能够品味到的美食的美味度最高是多少?输入描述:第一行是一个整数T(1 ≤ T ≤ 10),表示样例的个数。 以后每个样例第一行是两个整数n,m(1 ≤ n,m ≤ 30000),表示美食的种类数与查询的次数。 接下来n行,每行两个整数分别表示第i种美食的价格与美味度di,ci (1 ≤ di,ci ≤ 109)。 接下来m行,每行一个整数表示mostsh 查看全文

分清楚if else的三种结构

流程图可以引申为流程控制,流程控制又分为顺序结构,分支结构,循环结构。今天所说的if和else是属于分支结构(选择结构)。if和else一共又分为3种情况1.if结构2.if...else结构3.if...else if......else结构一、if结构利用程序实现就是:二、if...else结构利用程序实现就是三、.if...else if......else结构利用程序实现就是 流程图之if和else大致上就是这些内容啦!作者:沐思雨 阅读更多 查看全文

剑指offer] 两个链表的第一个公共结点

本文首发于我的个人博客:尾尾部落题目描述输入两个链表,找出它们的第一个公共结点。解题思路如果两个链表存在公共结点,那么它们从公共结点开始一直到链表的结尾都是一样的,因此我们只需要从链表的结尾开始,往前搜索,找到最后一个相同的结点即可。但是题目给出的单向链表,我们只能从前向后搜索,这时,我们就可以借助栈来完成。先把两个链表依次装到两个栈中,然后比较两个栈的栈顶结点是否相同,如果相同则出栈,如果不同,那最后相同的结点就是我们要的返回值。 还有一种方法,不需要借助栈。先找出2个链表的长度,然后让长的先走两个链表的长度差,然后再一起走,直到找到第一个公共结点。参考代码法1:/* public class ListNode {     int val;   &n 查看全文

sql分段处理删除大量数据

最近在QQ群里面,有人问起如何使用分段处理,竟然忘记如何操作,当时只是COPY一本书里的内容,只记得大致的步骤,先重新温习,以便记忆:实现功能:1.分段处理2.拆分操作3.批量绑定--摘自《Oracle 数据库性能优化》CREATE OR REPLACE PROCEDURE del_hubel_SSF_forallas type ridArray is table of rowid index by binary_integer; type dtArray is table of varchar2(50) index by binary_integer;  v_rowid ridArray; v_mid_to_delete dtArray;BEGIN SELECT mid, rowid bu 查看全文

(Git学习)二十三、创建标签

在Git中打标签非常简单,首先,切换到需要打标签的分支上:$ git branch * dev   master$ git checkout masterSwitched to branch 'master'然后,敲命令git tag <name>就可以打一个新标签:$ git tag v1.0可以用命令git tag查看所有标签:$ git tag v1.0默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?方法是找到历史提交的commit id,然后打上就可以了:$ git&nb 查看全文

Java连接Oracle数据库

Java连接Oracle基础应用:1.Eclipse新建一个Java项目:OracleConnection2.添加驱动文件到项目资源中,驱动文件在:[Oracle安装路径]product11.2.0dbhome_1jdbclib  中找到。  文件名:ojdbc6.jar3.新建一个Java类:OracleConnectionTest.java代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class OracleConnectionTest {private  查看全文

剑指Offer_编程题:栈的压入、弹出序列

题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)就是用一个辅助栈,入栈1,2,3,4,5,出栈4,5,3,2,1。首先1入辅助栈,此时栈顶1≠4,继续入栈2,此时栈顶2≠4,继续入栈3,此时栈顶3≠4,继续入栈4,此时栈顶4=4,出栈4,弹出序列向后一位,此时为5,辅助栈里面是1,2,3,此时栈顶3≠5,继续入栈5,此时栈顶5=5,出栈5,弹出序列向后一位,此时为3,,辅助栈里面是1,2,3…  依次执行,最后辅助栈为空。如果不为空说明弹出序列不是该栈的弹出顺序。while循环要有循环 查看全文
加载更多
其它 ( 244 )
python ( 199 )
java ( 174 )
算法 ( 136 )
linux ( 112 )
js ( 82 )
mysql ( 82 )
android ( 56 )
c/c++ ( 47 )
信息技术 ( 41 )
php ( 41 )
css ( 23 )
nginx ( 23 )
shell ( 22 )
教育 ( 21 )
html ( 19 )
操作系统 ( 19 )
设计模式 ( 18 )
node ( 14 )
tcp/udp ( 11 )
hive ( 11 )
es6 ( 10 )
es ( 10 )
编码 ( 9 )
redis ( 8 )
unix ( 5 )
SpringBoot ( 5 )
数据库 ( 5 )
hadhoop ( 4 )