空白键|我要消灭一半程序员,10大高性能开发宝石( 六 )
对于容量的问题 , 考虑到只需要判断对象是否存在 , 而并非拿到对象 , 我们可以将哈希表的表项大小设置为1个bit , 1表示存在 , 0表示不存在 , 这样大大缩小哈希表的容量 。
而对于哈希算法的问题 , 如果我们对哈希算法要求低一些 , 那哈希碰撞的机率就会增加 。 那一个哈希算法容易冲突 , 那就多弄几个 , 多个哈希函数同时冲突的概率就小的多 。
布隆过滤器就是基于这样的设计思路:
也正是因为这样 , 引出了布隆过滤器的另外一个重要特点:布隆过滤器判定存在的实际上不一定存在 , 但判定不存在的则一定不存在 。
你们公司网站的内容越来越多了 , 用户对于快速全站搜索的需求日益强烈 。 这个时候 , 你需要:
全文搜索技术
对于一些简单的查询需求 , 传统的关系型数据库尚且可以应付 。 但搜索需求一旦变得复杂起来 , 比如根据文章内容关键字、多个搜索条件但逻辑组合等情况下 , 数据库就捉襟见肘了 , 这个时候就需要单独的索引系统来进行支持 。
现在 , 同一个服务有多个服务器在提供服务了 , 需要将用户的请求均衡的分摊到各个服务器上 , 这个时候 , 你需要:
负载均衡技术
顾名思义 , 负载均衡意为将负载均匀平衡分配到多个业务节点上去 。
按照网络层次 , 可以分为四层负载均衡(基于网络连接)和七层负载均衡(基于应用内容) 。
按照均衡策略算法 , 可以分为轮询均衡、哈希均衡、权重均衡、随机均衡或者这几种算法相结合的均衡 。
而对于现在遇到等问题 , 可以使用nginx来实现负载均衡 , nginx支持轮询、权重、IP哈希、最少连接数目、最短响应时间等多种方式的负载均衡配置 。
推荐阅读
- 空白键|日常更新全面屏壁纸
- IT168|消灭挖孔屏!小米真全面屏技术上手
- 恐龙|有这种可能吗?其实外星人就是人类,6500万年前到地球消灭恐龙!
- 空白键|你在你男/女朋友的手机里发现过什么秘密?
- 芯片|中国芯需要多久才能造出来,中间的空白期怎么办?
- 空白键|我用什么品牌手机,跟爱国有什么关系?,请问
- 蜜蜂|1小时就能消灭6万只蜜蜂,却被蜜蜂用物理学反制,它有多惨?
- 空白键|iMatch移动固态硬盘体验,抛弃U盘从它做起,ORICO
- 空白键|CORESET和Search Space基本原理,点点滴滴学5G—一文掌握NR
- 空白键|redis学习第一篇