因为这个问题有两个关键点:快速、数据量很大 。树结构首先得排除,哈希表倒是可以做到常数阶的性能,但数据量大了以后,一方面对哈希表的容量要求巨大,另一方面如何设计一个好的哈希算法能够做到如此大量数据的哈希映射也是一个难题 。
对于容量的问题,考虑到只需要判断对象是否存在,而并非拿到对象,我们可以将哈希表的表项大小设置为1个bit,1表示存在,0表示不存在,这样大大缩小哈希表的容量 。
而对于哈希算法的问题,如果我们对哈希算法要求低一些,那哈希碰撞的机率就会增加 。那一个哈希算法容易冲突,那就多弄几个,多个哈希函数同时冲突的概率就小的多 。
布隆过滤器就是基于这样的设计思路:

文章插图
当设置对应的key-value时,按照一组哈希算法的计算,将对应比特位置1 。
但当对应的key-value删除时,却不能将对应的比特位置0,因为保不准其他某个key的某个哈希算法也映射到了同一个位置 。
也正是因为这样,引出了布隆过滤器的另外一个重要特点:布隆过滤器判定存在的实际上不一定存在,但判定不存在的则一定不存在 。
你们公司网站的内容越来越多了,用户对于快速全站搜索的需求日益强烈 。这个时候,你需要:
全文搜索技术
对于一些简单的查询需求,传统的关系型数据库尚且可以应付 。但搜索需求一旦变得复杂起来,比如根据文章内容关键字、多个搜索条件但逻辑组合等情况下,数据库就捉襟见肘了,这个时候就需要单独的索引系统来进行支持 。

文章插图
如今行业内广泛使用的ElasticSearch(简称ES)就是一套强大的搜索引擎 。集全文检索、数据分析、分布式部署等优点于一身,成为企业级搜索技术的首选 。

文章插图
ES使用RESTful接口,使用JSON作为数据传输格式,支持多种查询匹配,为各主流语言都提供了SDK,易于上手 。
另外,ES常常和另外两个开源软件Logstash、Kibana一起,形成一套日志收集、分析、展示的完整解决方案:ELK架构 。

文章插图
其中,Logstash负责数据的收集、解析,ElasticSearch负责搜索,Kibana负责可视化交互,成为不少企业级日志分析管理的铁三角 。
无论我们怎么优化,一台服务器的力量终究是有限的 。公司业务发展迅猛,原来的服务器已经不堪重负,于是公司采购了多台服务器,将原有的服务都部署了多份,以应对日益增长的业务需求 。
现在,同一个服务有多个服务器在提供服务了,需要将用户的请求均衡的分摊到各个服务器上,这个时候,你需要:
负载均衡技术
顾名思义,负载均衡意为将负载均匀平衡分配到多个业务节点上去 。

文章插图
和缓存技术一样,负载均衡技术同样存在于计算机世界到各个角落 。
按照均衡实现实体,可以分为软件负载均衡(如LVS、Nginx、HAProxy)和硬件负载均衡(如A10、F5) 。
按照网络层次,可以分为四层负载均衡(基于网络连接)和七层负载均衡(基于应用内容) 。
按照均衡策略算法,可以分为轮询均衡、哈希均衡、权重均衡、随机均衡或者这几种算法相结合的均衡 。
而对于现在遇到等问题,可以使用nginx来实现负载均衡,nginx支持轮询、权重、IP哈希、最少连接数目、最短响应时间等多种方式的负载均衡配置 。
轮询
upstream web-server {server 192.168.1.100;server 192.168.1.101; } 权重upstream web-server {server 192.168.1.100 weight=1;server 192.168.1.101 weight=2; } IP哈希值upstream web-server {ip_hash;server 192.168.1.100 weight=1;server 192.168.1.101 weight=2; } 最少连接数目upstream web-server {ip_hash;server 192.168.1.100 weight=1;server 192.168.1.101 weight=2; } 最短响应时间upstream web-server {server 192.168.1.100 weight=1;server 192.168.1.101 weight=2;fair;} 总结高性能是一个永恒的话题,其涉及的技术和知识面其实远不止上面列出的这些 。
从物理硬件CPU、内存、硬盘、网卡到软件层面的通信、缓存、算法、架构每一个环节的优化都是通往高性能的道路 。
推荐阅读
- 春季忽冷忽热易引疾病 胃肠疾病复发危害大
- 唐宣宗与唐武宗 唐高宗时期的大臣
- 黑骨茶和小叶紫檀区别,浅析大叶种茶和小叶种茶之间有哪些区分
- 静下心来品杯茶,静下心来
- 喝茶有十大误区,十大养生壶品牌有哪些
- 喝青茶能减肥吗,大麦茶能天天喝吗
- 于谦的经历 于谦的骨血
- 公孙瓒手下的大将和谋士 公孙瓒手下大将
- 十大海南美食推荐
- 洪荒十大圣人排名是怎样的?
