System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及互联网it技术与应用,尤其是涉及一种基于内存的手机归属地区分方法。
技术介绍
1、电信运营商存在对ip地址和手机号码进行分组查询的需要。例如,查询ip地址的归属地和手机号码的归属地等。
2、现有的查询方法有两种:
3、第一种,将手机号码段、ip地址子网段与省份的对应关系保存在数据库中,查询时遍历数据库查询。
4、第二种,将手机号码段、ip地址子网段和省份的对应关系保存在分布式存储系统(key-value)的内存对应关系中,查询时直接以手机号码或者ip地址为主键(key)进行查询。
5、其中,分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询
6、随着天翼超高清注册用户的持续增长,超高清业务应中存在着很多需要分权分域的业务点,那么在对用户进行省份、地市的区分是一个经常使用的环节,如何快速区分就变得极其重要。
7、为此,提出一种基于内存的手机归属地区分方法。
技术实现思路
1、本专利技术的目的在于提供一种基于内存的手机归属地区分方法,用于解决如何快速的进行手机号的省份、地市信息的区分,可以有效提升用户注册性能,以解决上述
技术介绍
中提出的问题。
2、为实现上述目的,本专利技术提供如下技术方案:一种基于内存的手机归属地区分方法,包括如下步骤:
3、步骤一、首先在用户手机号段出现变更的时候,通过手机号段数据库生成一个全量的csv文件
4、步骤二、通过共享存储方式,将csv文件传输至所有需要引用该文件的应用;
5、步骤三、生成h码解析类文件,用于读取本地csv文件并进行解析,并将从csv文件解析的手机号段信息放入内存中,并通过多级缓存结构的方式进行存储;
6、步骤四、访问应用从内存中通过多级缓存结构的读取方式,通过手机号段获取对应的省份、地市信息。
7、优选的,所述步骤一中包括手机号段文件生成:
8、根据准备好号段数据,即手机号段、省份、城市信息,先将数据导入数据库,然后通过脚本从数据库中将全量的手机号段信息读取出来,根据手机号段进行顺序排序,排序后根据手机号段、省份编号、省份名称、城市编号、城市名称的格式生成csv文件。
9、优选的,所述步骤二中包括文件共享:
10、将csv文件传输至所有需要引用到该文件的应用服务,采用了nas存储作为共享存储,作为一种专员公的存储设备,可以通过其专属的网络协议共享文件,这样所有挂载了nas存储的应用均可以直接读取共享的csv文件。
11、优选的,所述步骤三中包括文件解析:
12、当应用启动时,通过预加载提前加载手机号段csv文件,并将数据写入内存中。
13、优选的,所述步骤三中文件解析步骤如下:
14、s1、启动加载csv文件并写入内存;
15、s2、数据分级缓存处理;
16、s3、监控csv文件,重新加载数据。
17、优选的,所述s1包括应用启动过程中即读取并解析文件,获取手机号段数据,包括手机号段为、省份信息及城市信息。
18、优选的,所述s2包括2、由于所有手机号段有几十万数据,故此处将手机号段(手机号的前7位,如1890123)做分级缓存处理:
19、如:将1890进行作为一个concurrenthashmap(考虑到多线程访问场景采用)的缓存key,并将1890对应的所有号段1890000-1890999数据(1890000为key,1890000对应省份、地市信息为value)放入一个concurrenthashmap,作为1890这个缓存的value值,将1891进行作为一个concurrenthashmap的缓存key,并将1890对应的所有号段1891000-1891999数据(1891000为key,1891000对应省份、地市信息为value)放入一个concurrenthashmap,作为1891这个缓存的value值,依次在内存中以hashmap的方式写入。
20、优选的,所述s3包括由于手机号段信息不会经常变更,那么我们只需要每天监控一次号段csv文件的变化即可,当文件出现变化(即文件的修改时间变成24小时内),则需要重新加载解析号段文件,并将号段数据放入内存中。
21、优选的,所述步骤四包括当用户注册时,首先通过手机号截取前7位数字,超高清应用原来的做法是,直接查询数据库中的号段信息并返回,而在本方案中,则先通过手机号段的前4位定位到一个concurrenthashmap,然后从该内存对象中通过7位手机号段读取省份信息、城市信息,避免了数据库的访问,提升了读取效率。
22、与现有技术相比,本专利技术的有益效果是:
23、1.在原应用流程中,需要区分手机号段时直接通过数据库查询号段数据,性能相对较慢。本专利技术虽然在流程上较为复杂,但是对于每天千万级以上用户业务量的平台应用来说,减少了数据库的访问,对提升整体应用性能是起到了重要作用的;
24、2.通过提前预生成数据文件,取代了对数据库的直接访问,从本地内存读取,提高了效率。
本文档来自技高网...【技术保护点】
1.一种基于内存的手机归属地区分方法,其特征在于:包括如下步骤:
2.根据权利要求1所述的一种基于内存的手机归属地区分方法,其特征在于:所述步骤一中包括手机号段文件生成:
3.根据权利要求1所述的一种基于内存的手机归属地区分方法,其特征在于:所述步骤二中包括文件共享:
4.根据权利要求1所述的一种基于内存的手机归属地区分方法,其特征在于:所述步骤三中包括文件解析:
5.根据权利要求1所述的一种基于内存的手机归属地区分方法,其特征在于:所述步骤三中文件解析步骤如下:
6.根据权利要求5所述的一种基于内存的手机归属地区分方法,其特征在于:所述S1包括应用启动过程中即读取并解析文件,获取手机号段数据,包括手机号段为、省份信息及城市信息。
7.根据权利要求5所述的一种基于内存的手机归属地区分方法,其特征在于:所述S2包括2、由于所有手机号段有几十万数据,故此处将手机号段(手机号的前7位,如1890123)做分级缓存处理:
8.根据权利要求5所述的一种基于内存的手机归属地区分方法,其特征在于:所述S3包括由
9.根据权利要求1所述的一种基于内存的手机归属地区分方法,其特征在于:所述步骤四包括当用户注册时,首先通过手机号截取前7位数字,超高清应用原来的做法是,直接查询数据库中的号段信息并返回,而在本方案中,则先通过手机号段的前4位定位到一个ConcurrentHashMap,然后从该内存对象中通过7位手机号段读取省份信息、城市信息,避免了数据库的访问,提升了读取效率。
...【技术特征摘要】
1.一种基于内存的手机归属地区分方法,其特征在于:包括如下步骤:
2.根据权利要求1所述的一种基于内存的手机归属地区分方法,其特征在于:所述步骤一中包括手机号段文件生成:
3.根据权利要求1所述的一种基于内存的手机归属地区分方法,其特征在于:所述步骤二中包括文件共享:
4.根据权利要求1所述的一种基于内存的手机归属地区分方法,其特征在于:所述步骤三中包括文件解析:
5.根据权利要求1所述的一种基于内存的手机归属地区分方法,其特征在于:所述步骤三中文件解析步骤如下:
6.根据权利要求5所述的一种基于内存的手机归属地区分方法,其特征在于:所述s1包括应用启动过程中即读取并解析文件,获取手机号段数据,包括手机号段为、省份信息及城市信息。
7.根据权利要求5所述的一种基于内存的手机归属地区分方法,其特征在...
【专利技术属性】
技术研发人员:庄春,
申请(专利权)人:天翼视讯传媒有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。