35MyCat - 分片规则(字符串hash解析)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 35MyCat - 分片规则(字符串hash解析)

此规则是截取字符串中的int数值hash分片

<tableRule name="sharding-by-stringhash"> 
  <rule>
     <columns>user_id</columns>
      <algorithm>sharding-by-stringhash</algorithm> 
    </rule> 
  </tableRule>
  <function name="sharding-by-stringhash" class="org.opencloudb.route.function.PartitionByString" 
    <property name=length>512</property> <!-- zero-based --> 
    <property name="count">2</property> <property name="hashSlice">0:2</property> 
  </function>

配置说明:

上面columns 标识将要分片的表字段,algorithm 分片函数

函数中length代表字符串hash求模基数,count分区数,hashSlice hash预算位,即根据子字符串中int值 hash运算

hashSlice : 0 means str.length(), -1 means str.length()-1

/**

  • “2” -> (0,2)
  • “1:2” -> (1,2)
  • “1:” -> (1,0)
  • “-1:” -> (-1,0)
  • “:-1” -> (0,-1)
  • “:” -> (0,0)
    */
    例子:
String idVal=null;
 rule.setPartitionLength("512");
 rule.setPartitionCount("2");
 rule.init();
 rule.setHashSlice("0:2");
// idVal = "0";
// Assert.assertEquals(true, 0 == rule.calculate(idVal));
// idVal = "45a";
// Assert.assertEquals(true, 1 == rule.calculate(idVal));
 //last 4
 rule = new PartitionByString();
 rule.setPartitionLength("512");
 rule.setPartitionCount("2");
 rule.init();
 //last 4 characters
 rule.setHashSlice("-4:0");
 idVal = "aaaabbb0000";
 Assert.assertEquals(true, 0 == rule.calculate(idVal));
 idVal = "aaaabbb2359";
 Assert.assertEquals(true, 0 == rule.calculate(idVal));


目录
相关文章
|
2月前
|
JavaScript
js 解析 byte数组 成字符串
js 解析 byte数组 成字符串
59 5
|
23天前
|
SQL 安全 Windows
SQL安装程序规则错误解析与解决方案
在安装SQL Server时,用户可能会遇到安装程序规则错误的问题,这些错误通常与系统配置、权限设置、依赖项缺失或版本不兼容等因素有关
|
2月前
|
XML 编解码 JavaScript
从浏览器的解析规则认识XSS防御
从浏览器的解析规则认识XSS防御
37 2
|
3月前
|
存储 关系型数据库 MySQL
|
4月前
|
SQL 开发框架 前端开发
在C#开发中使用第三方组件LambdaParser、DynamicExpresso、Z.Expressions,实现动态解析/求值字符串表达式
在C#开发中使用第三方组件LambdaParser、DynamicExpresso、Z.Expressions,实现动态解析/求值字符串表达式
|
4月前
|
自然语言处理 算法 搜索推荐
字符串相似度算法完全指南:编辑、令牌与序列三类算法的全面解析与深入分析
在自然语言处理领域,人们经常需要比较字符串,这些字符串可能是单词、句子、段落甚至是整个文档。如何快速判断两个单词或句子是否相似,或者相似度是好还是差。这类似于我们使用手机打错一个词,但手机会建议正确的词来修正它,那么这种如何判断字符串相似度呢?本文将详细介绍这个问题。
261 1
|
3月前
|
索引 容器
容器镜像解析问题之获取 Image 的 ConfigFile 的 hash 值如何解决
容器镜像解析问题之获取 Image 的 ConfigFile 的 hash 值如何解决
13 0
|
4月前
|
消息中间件 JSON NoSQL
Redis深度解析:核心数据类型之hash、list、set
Redis深度解析:核心数据类型之hash、list、set
|
5月前
|
存储 算法 数据挖掘
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
|
5月前
|
算法
[白话解析] 深入浅出一致性Hash原理
[白话解析] 深入浅出一致性Hash原理

推荐镜像

更多