算法
一朵风中摇曳的水仙花
世人多愿锦上添花,却少有人雪中送炭
展开
-
比例分成算法--java
关于业绩分配,常常会出现几家公司或者几个人合作的情况,那么合作之后创造出来的业绩价值如何分配的呢?有可能是1:1或者3:7.或者是3:3:4等等。那么我们针对这种情况就设计出来了一套比例分成系统。代码如下所示:主代码:package com.handler.mark.cardperformance;import com.alibaba.fastjson.JSON;import ...原创 2019-09-04 10:58:27 · 5958 阅读 · 0 评论 -
一致性哈希算法原理(一)
一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但现在一致性hash算法在分布式系统中也得到了广泛应用,研究过memcached缓存数据库的人...转载 2019-01-14 16:05:41 · 169 阅读 · 0 评论 -
一致性哈希算法原理(二)
使用场景现在我们假设有100台redis data服务器,一份数据101进来的时候,以散列公式hash(i)&100,计算所存放的服务器,假设hash(i) = i,那么数据被散列到标号为1的服务器,然后这个时候服务器新增了一台,然后散列公式为hash(i)%101,这个时候请求访问数据101的时候,被分配至0号服务器,但是其实这个时候数据是在1号服务器的。所以这个时候大量的数据失...转载 2019-01-14 16:07:22 · 188 阅读 · 0 评论 -
一致性哈希算法原理(三)
一、Redis集群的使用 二、为Redis集群使用Hash 上图中,假设我们查找的是”a.png”,由于有4台服务器(排除从库),因此公式为hash(a.png) % 4 = 2 ,可知定位到了第2号服务器,这样的话就不会遍历所有的服务器,大大提升了性能!三、使用Hash的问题上述的方式虽然提升了性能,我们不再需要对整个Redis服务器进行遍历!但是,使用...转载 2019-01-14 16:14:05 · 240 阅读 · 0 评论 -
循环迭代遍历递归的区别
loop、iterate、traversal和recursion这几个词是计算机技术书中经常会出现的几个词汇。众所周知,这几个词分别翻译为:循环、迭代、遍历和递归。乍一看,这几个词好像都与重复(repeat)有关,但有的又好像不完全是重复的意思。那么这几个词到底各是什么含义,有什么区别和联系呢?下面就试着解释一下。循环(loop),指的是在满足条件的情况下,重复执行同一段代码。比如,whil...转载 2019-01-26 21:32:27 · 624 阅读 · 0 评论 -
一致性哈希java实现算法
hash算法package com.cn.function; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class HashFunction { private MessageDigest md5 = null; /** * 实现一致性哈...转载 2019-01-16 15:00:13 · 152 阅读 · 0 评论