首页
学习
活动
专区
工具
TVP
发布

happyJared

做好寫代碼這事
专栏作者
296
文章
364963
阅读量
30
订阅数
布隆过滤器之 Redis
Redis v4.0 之后有了 Module(模块/插件) 功能,Redis Modules 让 Redis 可以使用外部模块扩展其功能,布隆过滤器就是其中的 Module,详情可以查看 Redis 官方对 Redis Modules 的介绍 :https://redis.io/modules。
happyJared
2019-12-11
1.1K0
布隆过滤器使用场景
判断给定数据是否存在:比如判断一个数字是否在包含大量数字的数字集中、 防止缓存穿透(判断请求的数据是否有效避免直接绕过缓存请求数据库)等等、邮箱的垃圾邮件过滤、黑名单功能等等; 去重:比如爬给定网址的时候对已经爬取过的 URL 去重。 下面,我们再来看看如果想要手动实现一个的话,那么需要以下几步: 合适大小的位数组保存数据 几个不同的哈希函数 添加元素到位数组(布隆过滤器)的方法实现 判断给定元素是否存在于位数组(布隆过滤器)的方法实现。
happyJared
2019-12-11
7060
布隆过滤器原理
如图所示,当字符串存储要加入到布隆过滤器中时,该字符串首先由多个哈希函数生成不同的哈希值,然后在对应的位数组的下表的元素设置为 1(当位数组初始化时 ,所有位置均为0)。当第二次存储相同字符串时,因为先前的对应位置已设置为1,所以很容易知道此值已经存在(去重非常方便)。
happyJared
2019-12-11
2890
数据库 ID 生成方案:雪花算法
今天介绍的雪花算法:Snowflake,可以让负责生成分布式 ID 的每台机器在每毫秒内生成不一样的 ID。Snowflake 是 Twitter 开源的分布式 ID 生成算法,它不依赖数据库。
happyJared
2019-12-02
1.3K0
BeautifulSoup 获取 Script 标签内的 json 数据
有时候,我们可能会遇到数据是以 JSON 字符串的形式包裹在 Script 标签中,此时使用 BeautifulSoup 仍然可以很方便的提取。
happyJared
2019-11-03
4.6K0
高性能系统的常用开发手段
提高硬件能力、增加系统服务器(当服务器增加到某个程度的时候,系统所能提供的并发访问量几乎不变,所以不能从根本上解决问题) 使用缓存(本地缓存:可以使用 JDK 自带的 Map、Guava Cache;分布式缓存如:Redis、Memcache。本地缓存并不适用于提高系统并发量,如 Spring 是把已经初始过的变量放在一个 Map 中,下次再要使用这个变量的时候,先判断 Map 中有没有,这也是系统中常见的单例模式实现) 消息队列 (解耦+削峰+异步) 采用分布式开发 (不同的服务部署在不同的机器节点上,且
happyJared
2019-10-18
3970
Spring 应用之模板方法设计模式
模板方法模式是行为设计模式的一种,它定义一个操作中算法的骨架,而将一些执行步骤延迟到了子类中。模板方法使得子类可以不改变算法本身的结构,即可重新定义该算法的某些特定步骤的实现方式。
happyJared
2019-10-13
6020
Spring 应用之单例设计模式
在系统开发中,有些对象其实只需要一个,比如说:线程池、缓存、日志对象等。在 Spring 框架中,就大量应用到了单例设计模式。
happyJared
2019-10-08
4080
DispatcherServlet 详细解析
在 Web MVC 框架中,每个 DispatcherServlet 都拥有自己的 WebApplicationContext,它继承了 ApplicationContext。WebApplicationContext 包含了其上下文和 Servlet 实例之间共享的所有 beans。
happyJared
2019-10-08
5530
Spring bean 初始化和销毁
有时需要在 Bean 属性值 set 好之后和 Bean 销毁之前做一些事情,比如检查 Bean 中某个属性是否被正常的设置好值。Spring 框架提供了多种方法,让我们可以在 Spring Bean 的生命周期中执行 initialization 和 pre-destroy 方法。
happyJared
2019-10-08
8670
Spring Bean 作用域详解
在 Spring 中,那些组成应用程序的主体,以及由 Spring IOC 容器所管理的对象,被称之为 bean。简单地讲,bean 就是由 IOC 容器初始化、装配及管理的对象,除此之外,bean 就与应用程序中的其他对象没有什么区别了,而 bean 的定义以及 bean 相互间的依赖关系,将通过配置元数据来描述。
happyJared
2019-09-30
1K0
Spring 中的 Bean
单例 bean 存在线程问题,主要是因为当多个线程操作同一个对象的时,对这个对象的非静态成员变量的写操作,会存在线程安全问题。
happyJared
2019-09-24
5330
Shell 基本运算符
通过一个简单的示例来演示关系运算符的使用,下面 shell 程序的作用是:当 score=100 的时候输出 A 否则输出 B。
happyJared
2019-09-18
3780
Redis 扩展:缓存雪崩和缓存穿透问题解决方案
缓存同一时间大面积失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量的请求而崩掉。
happyJared
2019-08-27
5890
Redis 数据结构
String 数据结构是简单的 key-value 类型,value 不仅可以是 String,也可以是数字。
happyJared
2019-08-22
4220
为什么是 Redis
缓存分为本地缓存和分布式缓存。以 Java 为例,使用自带的 map 或者 guava 实现的是本地缓存,最主要的特点是轻量以及快速,生命周期随着 jvm 的销毁而结束,并且在多实例的情况下,每个实例都需要各自保存一份缓存,缓存不具有一致性。
happyJared
2019-08-21
3870
MySQL 字符集、校对规则及索引
字符集指的是一种从二进制编码到某类字符符号的映射。校对规则则是指某种字符集下的排序规则。
happyJared
2019-08-09
8240
NIO 读数据和写数据方式
整个 NIO 体系包含的类远远不止这三个,只能说这三个是 NIO 体系的 “核心 API”。上面已经对这三个概念进行了基本的阐述,这里就不多做解释了。
happyJared
2019-08-08
6640
传统 BIO (Blocking I/O)
BIO (Blocking I/O) 是同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成。
happyJared
2019-08-05
8510
Java8 Date API
Java8 在 java.time 包下新增了全新的日期和时间 API。新的 Date API 与 Joda-Time 库有点相似,但又有不一样。
happyJared
2019-08-02
7870
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档