- 博客(272)
- 资源 (6)
- 收藏
- 关注
转载 Redis布隆过滤器, Redis GEO地理位置
Redis布隆过滤器布隆过滤器(Bloom Filter)是 Redis 4.0 版本提供的新功能,它被作为插件加载到 Redis 服务器中,给 Redis 提供强大的去重功能。相比于 Set 集合的去重功能而言,布隆过滤器在空间上能节省 90% 以上,但是它的不足之处是去重率大约在 99% 左右,也就是说有 1% 左右的误判率,这种误差是由布隆过滤器的自身结构决定的。俗话说“鱼与熊掌不可兼得”,如果想要节省空间,就需要牺牲 1% 的误判率,而且这种误判率,在处理海量数据时,几乎可以忽略。应用场景
2022-02-16 17:12:28
287
转载 Redis HyperLoglog基数统计, PubSub发布订阅, Stream消息队列
HyperLoglog基数统计Redis 经常使用的数据类型有字符串、列表、散列、集合和有序集合,但这些类型并不能满足所有的应用场景,因此,Redis 的后续版本不断的扩增其他数据类型来增强 Redis 适用能力。在 Redis 2.8.9 版本中新增了 HyperLogLog 类型。什么是HyperLoglogHyperLoglog 是 Redis 重要的数据类型之一,它非常适用于海量数据的计算、统计,其特点是占用空间小,计算速度快。HyperLoglog 采用了一种基数估计算法,因此,最终
2022-02-16 16:50:38
323
转载 Redis连接命令,Redis安全策略,Redis客户端(client)命令,Redis服务器命令
目录Redis连接命令详解Redis连接命令连接命令应用Redis安全策略命令配置密码手动配置密码指令安全端口安全SSH代理Redis客户端(client)命令Redis IO多路复用客户端最大连接数常用命令命令应用应用Redis服务器命令常用服务器命令基本命令演示Redis连接命令详解Redis 连接命令是主要用于验证 Redis 服务器的连接状态,比如验证客户端与 Redis 服务器是否连接成功,以及检查服务器运行状态,以.
2022-02-15 09:15:30
3962
转载 Redis set集合,Redis zset有序集合
Redis set集合Redis set (集合)遵循无序排列的规则,集合中的每一个成员(也就是元素,叫法不同而已)都是字符串类型,并且不可重复。Redis set 是通过哈希映射表实现的,所以它的添加、删除、查找操作的时间复杂度为 O(1)。集合中最多可容纳 2^32 - 1 个成员(40 多亿个)。Redis set 使用以下方式向集合中添加一个成员,语法格式如下:127.0.0.1:6379> SADD key member [member ...] key:指定一个键 me
2022-02-15 09:03:22
1030
转载 Redis list列表, hash哈希散列
Redis list列表Redis list(列表)相当于 Java 语言中的 LinkedList 结构,是一个链表而非数组,其插入、删除元素的时间复杂度为 O(1),但是查询速度欠佳,时间复杂度为 O(n)。当向列表中添加元素值时,首先需要给这个列表指定一个 key 键,然后使用相应的命令,从列表的左侧(头部)或者右侧(尾部)来添加元素,这些元素会以添加时的顺序排列。一个列表最多可以包含 2^32 - 1 个元素(约 40 亿个元素),当列表弹出最后一个元素时,该结构会被自动删除。认识Redi
2022-02-14 12:56:51
1373
转载 Redis INCR数值操作命令
Redis string 类型提供了一些专门操作数值的命令,比如 INCRBY(自增)、DECRBR(自减)、INCR(加1) 和 DECR(减1) 等命令。数值操作,同样有特定的应用场景,比如常见的点赞、取消点赞、关注、取消关注等,这类和计数相关的场景都可以使用数值操作来实现。注意:此时 key 对应的 value 值是必须是一个整数,或浮点数,使用命令对这个数值进行自增或自减操作。当然,这个数值也不能无限的增大或减小, Redis 规定的数值范围是-9223372036854775808 至 92..
2022-02-14 12:47:35
2553
转载 Redis bitmap位图操作(图解)
在平时开发过程中,经常会有一些 bool 类型数据需要存取。比如记录用户一年内签到的次数,签了是 1,没签是 0。如果使用 key-value 来存储,那么每个用户都要记录 365 次,当用户成百上亿时,需要的存储空间将非常巨大。为了解决这个问题,Redis 提供了位图结构。位图(bitmap)同样属于 string 数据类型。Redis 中一个字符串类型的值最多能存储 512 MB 的内容,每个字符串由多个字节组成,每个字节又由 8 个 Bit 位组成。位图结构正是使用“位”来实现存储的,它通过将比特位
2022-02-14 12:21:39
273
转载 Redis string字符串
Redis string字符串string(字符串)是 Redis 中最简单的数据类型。我们知道,Redis 所有数据类型都是以 key 作为键,通过检索这个 key 就可以获取相应的 value 值。Redis 存在多种数据类型,比如字符串、列表、哈希散列等,它们对应的 value 结构各不相同。本节先讲解字符串的相关知识。认识Redis字符串Redis 使用标准 C 语言编写,但在存储字符时,Redis 并未使用 C 语言的字符类型,而是自定义了一个属于特殊结构 SDS(Simple Dyn
2022-02-14 12:14:14
354
转载 Redis数据类型,命令行模式,key键
Redis数据类型经过前面介绍,我们知道 Redis 是 Key-Value 类型缓存型数据库,Redis 为了存储不同类型的数据,提供了五种常用数据类型,如下所示:string(字符串) hash(哈希散列) list(列表) set(集合) zset(sorted set:有序集合)注意:这里指的数据类型是 Value(值) 的数据类型,而非 key。string字符串String 是 Redis 最基本的数据类型。字符串是一组字节,在 Redis 数据库中,字符串具有二进制安
2022-02-14 09:00:11
318
转载 Redis简介,安装,配置
目录Redis简介Redis架构Redis优势Redis应用场景Redis下载和安装(Windows系统)创建Redis临时服务命令创建Redis服务总结Redis简介Redis 全称 Remote Dictionary Server(即远程字典服务),它是一个基于内存实现的键值型非关系(NoSQL)数据库,由意大利人 Salvatore Sanfilippo 使用 C 语言编写。Redis 遵守 BSD 协议,实现了免费开源,其最新版本是 6.20,常用版本.
2022-02-13 17:51:05
554
转载 Hibernate关联映射(非常详细)
在前面的学习中,我们所涉及的都是基于单表的操作,但在实际的开发过程中,基本上都是同时对多张表的操作,且这些表都存在一定的关联关系。Hibernate 是一款基于 ORM 设计思想的框架,它将关系型数据库中的表与我们 Java 实体类进行映射,表中的记录对应实体类的对象,而表中的字段对应着实体类中的属性。Hibernate 进行增删改查等操作时,不再直接操作数据库表,而是对与之对应的实体类对象进行处理。那么,Hibernate 是如何处理多表关联问题的呢?本节我们针对此问题进行介绍。关联映射在关系型
2022-02-12 19:40:27
1744
转载 Hibernate核心接口(5个)
在 Hibernate 中有 5 个常用的核心接口,它们分别是 Configuration 接口、SessionFactory 接口、Session 接口、Transaction 接口和 Query 接口。本节,我们就对这 5 个核心接口进行详细讲解。1. Configuration正如其名,Configuration 主要用于管理 Hibernate 配置信息,并在启动 Hibernate 应用时,创建 SessionFactory 实例。在 Hibernate 应用启动时,需要获取一些基本信息
2022-02-12 18:50:34
776
转载 Hibernate工作原理(图解)|| hibernate.cfg.xml(Hibernate核心配置文件)|| Hibernate映射文件(Xxx.hbm.xml)
在Hibernate操作数据库一节的学习中,我们主要涉及到了 Configuration、SessionFactory、Session、Transaction 和 Query 等多个接口,这些接口在 Hibernate 运行时都扮演着十分重要的角色,本节我们就来介绍以一下 Hibernate 运行时的工作原理。关于Configuration、SessionFactory、Session、Transaction 和 Query等接口的使用,我们会在Hibernate 的核心接口一节中进行详细的讲...
2022-02-12 18:09:35
1341
转载 Hibernate增删改查操作(CRUD)
接下来,我们将介绍 Hibernate 是如何实现对数据库的增删改查(CRUD)操作的。插入记录Hibernate 在 Session 接口中为我们提供了一个 save() 方法,该方法可以向据库表中插入记录。1. 在测试类 MyTest 中,创建一个名称为 testInsert 的方法,代码如下。/*** 保存数据*/@Testpublic void testInsert() { //加载 Hibernate 核心配置文件 Configuration configu
2022-02-12 17:29:46
4503
2
转载 Hibernate项目创建流程(IDEA版)
本节我们将演示如何搭建一个 Hibernate 工程。搭建 Hibernate 工程需要以下 7 步:下载 Hibernate 开发包 新建工程 创建数据库表 创建实体类 创建映射文件 创建 Hibernate 核心配置文件 测试1. 下载 Hibernate 开发包浏览器访问Hibernate 官网下载 Hibernate(以 hibernate-release-5.5.3.Final 为例)开发包。目录介绍下载完成后,解压 hibernate-release-5.5...
2022-02-12 17:19:43
1887
转载 Spring Boot自定义starter
starter 是 SpringBoot 中一种非常重要的机制,它可以繁杂的配置统一集成到 starter 中,我们只需要通过 maven 将 starter 依赖引入到项目中,SpringBoot 就能自动扫描并加载相应的默认配置。starter 的出现让开发人员从繁琐的框架配置中解放出来,将更多的精力专注于业务逻辑的开发,极大的提高了开发效率。在一些特殊情况下,我们也可以将一些通用功能封装成自定义的 starter 进行使用,本节我们将为您详细介绍如何自定义 starter。命名规范Sprin
2022-02-12 16:03:30
392
转载 Spring Boot整合MyBatis
MyBatis 是一个半自动化的 ORM 框架,所谓半自动化是指 MyBatis 只支持将数据库查出的数据映射到 POJO 实体类上,而实体到数据库的映射则需要我们自己编写 SQL 语句实现,相较于Hibernate 这种完全自动化的框架,Mybatis 更加灵活,我们可以根据自身的需求编写 sql 语句来实现复杂的数据库操作。随着 Spring Boot 越来越流行,越来越多的被厂商及开发者所认可,MyBatis 也开发了一套基于 Spring Boot 模式的 starter:mybatis-spri
2022-02-12 15:36:42
129
转载 Spring Boot整合Druid数据源
Spring Boot 2.x 默认使用 HikariCP 作为数据源,我们只要在项目中导入了 Spring Boot 的 JDBC 场景启动器,便可以使用 HikariCP 数据源获取数据库连接,对数据库进行增删改查等操作。HikariCP 是目前市面上性能最好的数据源产品,但在实际的开发过程中,企业往往更青睐于另一款数据源产品:Druid,它是目前国内使用范围最广的数据源产品。Druid 是阿里巴巴推出的一款开源的高性能数据源产品,Druid 支持所有 JDBC 兼容的数据库,包括 Oracle、M
2022-02-12 15:12:32
1274
转载 Spring Boot数据源配置原理
在数据库访问过程中,“数据源”无疑是最重要的概念之一,它不仅可以对与数据库访问相关的各种参数进行封装和统一管理,还可以管理数据库连接池,提高数据库连接性能。目前,在市面上有很多优秀的开源数据源,例如 DBCP、C3P0、Druid、HikariCP 等等。在 Spring Boot 2.x 中,则采用目前性能最佳的 HikariCP 作为其默认数据源。接下来,我们就来具体介绍下 Spring Boot 的默认数据源配置及其原理。DataSourceAutoConfiguration我们知道,Spr
2022-02-12 14:05:54
465
转载 Spring Boot JDBC访问数据库
对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 都默认采用整合 Spring Data 的方式进行统一处理,通过大量自动配置,来简化我们对数据访问层的操作,我们只需要进行简单的设置即可实现对书层的访问。本节,我们将学习如何在 Spring Boot 中使用 JDBC 进行数据访问。导入 JDBC 场景启动器Spring Boot 将日常企业应用研发中的各种场景都抽取出来,做成一个个的场景启动器(Starter),场景启动器中整合了该场景下各
2022-02-12 10:58:49
283
转载 Spring Boot注册Web原生组件(Servlet、Filter、Listener)
由于 Spring Boot 默认以 Jar 包方式部署的,默认没有 web.xml,因此无法再像以前一样通过 web.xml 配置来使用 Servlet 、Filter、Listener,但 Spring Boot 提供了 2 种方式来注册这些 Web 原生组件。通过组件扫描注册使用 RegistrationBean 注册通过组件扫描注册Servlet 3.0 提供了以下 3 个注解:@WebServlet:用于声明一个 Servlet; @WebFilter:用于声明一个 Filter
2022-02-11 21:57:33
202
转载 Spring Boot全局异常处理
我们知道 Spring Boot 已经提供了一套默认的异常处理机制,但是 Spring Boot 提供的默认异常处理机制却并不一定适合我们实际的业务场景,因此,我们通常会根据自身的需要对 Spring Boot 全局异常进行统一定制,例如定制错误页面,定制错误数据等。定制错误页面我们可以通过以下 3 种方式定制 Spring Boot 错误页面:自定义error.html 自定义动态错误页面 自定义静态错误页面自定义 error.html我们可以直接在模板引擎文件夹(/resourc.
2022-02-11 21:24:48
353
转载 Spring Boot默认异常处理
在日常的 Web 开发中,会经常遇到大大小小的异常,此时往往需要一个统一的异常处理机制,来保证客户端能接收较为友好的提示。Spring Boot 同样提供了一套默认的异常处理机制,本节将对它进行详细的介绍。Spring Boot 默认异常处理机制Spring Boot 提供了一套默认的异常处理机制,一旦程序中出现了异常,Spring Boot 会自动识别客户端的类型(浏览器客户端或机器客户端),并根据客户端的不同,以不同的形式展示异常信息。1. 对于浏览器客户端而言,Spring Boot 会响应
2022-02-11 20:42:08
438
转载 Spring Boot拦截器精讲
我们对拦截器并不陌生,无论是 Struts 2 还是 Spring MVC 中都提供了拦截器功能,它可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能上。Spring Boot 同样提供了拦截器功能。在 Spring Boot 项目中,使用拦截器功能通常需要以下 3 步:定义拦截器; 注册拦截器; 指定拦截规则(如果是拦截所有,静态资源也会被拦截)。定义拦截器在 Spring Boot 中定义拦截器十分的简单,只需要创建一个拦截器类,并实现..
2022-02-10 16:29:46
247
转载 Spring Boot国际化
国际化(Internationalization 简称 I18n,其中“I”和“n”分别为首末字符,18 则为中间的字符数)是指软件开发时应该具备支持多种语言和地区的功能。换句话说就是,开发的软件需要能同时应对不同国家和地区的用户访问,并根据用户地区和语言习惯,提供相应的、符合用具阅读习惯的页面和数据,例如,为中国用户提供汉语界面显示,为美国用户提供提供英语界面显示。在 Spring 项目中实现国际化,通常需要以下 3 步:编写国际化资源(配置)文件; 使用 ResourceBundleMessag
2022-02-10 16:24:00
3411
转载 Spring Boot整合Thymeleaf
Spring Boot 推荐使用 Thymeleaf 作为其模板引擎。SpringBoot 为 Thymeleaf 提供了一系列默认配置,项目中一但导入了 Thymeleaf 的依赖,相对应的自动配置 (ThymeleafAutoConfiguration 或 FreeMarkerAutoConfiguration) 就会自动生效,因此 Thymeleaf 可以与 Spring Boot 完美整合 。Spring Boot 整合 Thymeleaf 模板引擎,需要以下步骤:引入 Starter 依赖
2022-02-10 16:15:09
432
转载 Thymeleaf教程(10分钟入门)
Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。它与 JSP,Velocity,FreeMaker 等模板引擎类似,也可以轻易地与 Spring MVC 等 Web 框架集成。与其它模板引擎相比,Thymeleaf 最大的特点是,即使不启动 Web 应用,也可以直接在浏览器中打开并正确显示模板页面 。1. Thymeleaf 简介Thymeleaf 是新一代 Java 模板引擎,与 Velocity、FreeMarker 等传统 Java 模板引擎不同,Thyme
2022-02-09 21:57:16
10116
转载 Spring Boot定制Spring MVC
Spring Boot 抛弃了传统 xml 配置文件,通过配置类(标注 @Configuration 的类,相当于一个 xml 配置文件)以 JavaBean 形式进行相关配置。Spring Boot 对 Spring MVC 的自动配置可以满足我们的大部分需求,但是我们也可以通过自定义配置类(标注 @Configuration 的类)并实现 WebMvcConfigurer 接口来定制 Spring MVC 配置,例如拦截器、格式化程序、视图控制器等等。SpringBoot 1.5 及以前是.
2022-02-09 21:24:21
395
1
转载 Spring Boot静态资源映射
在 Web 应用中会涉及到大量的静态资源,例如 JS、CSS 和 HTML 等。我们知道,Spring MVC 导入静态资源文件时,需要配置静态资源的映射;但在 SpringBoot 中则不再需要进行此项配置,因为 SpringBoot 已经默认完成了这一工作。Spring Boot 默认为我们提供了 3 种静态资源映射规则:WebJars 映射 默认资源映射 静态首页(欢迎页)映射WebJars 映射为了让页面更加美观,让用户有更多更好的体验,Web 应用中通常会使用大量的 JS 和 CS
2022-02-09 09:12:58
3320
转载 spring-boot-starter-web(Web启动器)
Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,其本身就是 Spring 框架的一部分,可以与 Spring 无缝集成,性能方面具有先天的优越性,是当今业界最主流的 Web 开发框架之一。Spring Boot 是在 Spring 的基础上创建一款开源框架,它提供了 spring-boot-starter-web(Web 场景启动器) 来为 Web 开发予以支持。spring-boot-starter-web 为我们提供了嵌入的 Servlet 容器.
2022-02-09 08:59:29
16521
转载 Spring Boot日志配置及输出
通过上节的学习,我们了解了 Spring Boot 日志框架的选用及统一,本节我们将重点介绍 Spring Boot 日志的配置及输出。默认配置Spring Boot 默认使用 SLF4J+Logback 记录日志,并提供了默认配置,即使我们不进行任何额外配,也可以使用 SLF4J+Logback 进行日志输出。常见的日志配置包括日志级别、日志的输入出格式等内容。日志级别日志的输出都是分级别的,当一条日志信息的级别大于或等于配置文件的级别时,就对这条日志进行记录。常见的日志级别如下(优.
2022-02-09 08:51:46
8868
1
转载 Spring Boot统一日志框架
在项目开发中,日志十分的重要,不管是记录运行情况还是定位线上问题,都离不开对日志的分析。在 Java 领域里存在着多种日志框架,如 JCL、SLF4J、Jboss-logging、jUL、log4j、log4j2、logback等等。日志框架的选择市面上常见的日志框架有很多,它们可以被分为两类:日志门面(日志抽象层)和日志实现,如下表。市面上常见的日志框架有很多,它们可以被分为两类:日志门面(日志抽象层)和日志实现,如下表。日志分类 描述 举例 日志门面(日志抽象层)..
2022-02-08 22:14:21
350
转载 Spring Boot自动配置原理
我们知道,Spring Boot 项目创建完成后,即使不进行任何的配置,也能够顺利地运行,这都要归功于 Spring Boot 的自动化配置。Spring Boot 默认使用 application.properties 或 application.yml 作为其全局配置文件,我们可以在该配置文件中对各种自动配置属性(server.port、logging.level.* 、spring.config.active.no-profile 等等)进行修改,并使之生效,那么您有没有想过这些属性是否有据可依呢?
2022-02-07 22:00:03
231
转载 Spring Boot配置加载顺序
Spring Boot 不仅可以通过配置文件进行配置,还可以通过环境变量、命令行参数等多种形式进行配置。这些配置都可以让开发人员在不修改任何代码的前提下,直接将一套 Spring Boot 应用程序在不同的环境中运行。Spring Boot 配置优先级以下是常用的 Spring Boot 配置形式及其加载顺序(优先级由高到低):命令行参数 来自 java:comp/env 的 JNDI 属性 Java 系统属性(System.getProperties()) 操作系统环境变量 Rando
2022-02-07 17:31:03
646
转载 Spring Boot外部配置文件
除了默认配置文件,Spring Boot 还可以加载一些位于项目外部的配置文件。我们可以通过如下 2 个参数,指定外部配置文件的路径:spring.config.location spring.config.additional-locationspring.config.location我们可以先将 Spring Boot 项目打包成 JAR 文件,然后在命令行启动命令中,使用命令行参数 --spring.config.location,指定外部配置文件的路径。java -jar {..
2022-02-07 14:08:22
5105
转载 Spring Boot默认配置文件
通常情况下,Spring Boot 在启动时会将 resources 目录下的 application.properties 或 apllication.yml 作为其默认配置文件,我们可以在该配置文件中对项目进行配置,但这并不意味着 Spring Boot 项目中只能存在一个 application.properties 或 application.yml。默认配置文件Spring Boot 项目中可以存在多个 application.properties 或 apllication.yml。S
2022-02-07 13:45:53
1411
转载 Spring Boot Profile(多环境配置)
在实际的项目开发中,一个项目通常会存在多个环境,例如,开发环境、测试环境和生产环境等。不同环境的配置也不尽相同,例如开发环境使用的是开发数据库,测试环境使用的是测试数据库,而生产环境使用的是线上的正式数据库。Profile 为在不同环境下使用不同的配置提供了支持,我们可以通过激活、指定参数等方式快速切换环境。多 Profile 文件方式Spring Boot 的配置文件共有两种形式:.properties 文件和 .yml 文件,不管哪种形式,它们都能通过文件名的命名形式区分出不同的环境的配置,文
2022-02-02 21:19:59
3159
转载 Spring Boot导入Spring配置
默认情况下,Spring Boot 中是不包含任何的 Spring 配置文件的,即使我们手动添加 Spring 配置文件到项目中,也不会被识别。那么 Spring Boot 项目中真的就无法导入 Spring 配置吗?答案是否定的。Spring Boot 为了我们提供了以下 2 种方式来导入 Spring 配置:使用 @ImportResource 注解加载 Spring 配置文件 使用全注解方式加载 Spring 配置@ImportResource 导入 Spring 配置文件在主启动类上使
2022-02-02 21:01:59
699
转载 Spring Boot配置绑定
所谓“配置绑定”就是把配置文件中的值与 JavaBean 中对应的属性进行绑定。通常,我们会把一些配置信息(例如,数据库配置)放在配置文件中,然后通过 Java 代码去读取该配置文件,并且把配置文件中指定的配置封装到 JavaBean(实体类) 中。SpringBoot 提供了以下 2 种方式进行配置绑定:使用 @ConfigurationProperties 注解 使用 @Value 注解@ConfigurationProperties通过 Spring Boot 提供的 @Configur
2022-02-02 20:34:30
447
转载 Spring boot AML教程
Spring boot AML教程Spring Boot 提供了大量的自动配置,极大地简化了spring 应用的开发过程,当用户创建了一个 Spring Boot 项目后,即使不进行任何配置,该项目也能顺利的运行起来。当然,用户也可以根据自身的需要使用配置文件修改 Spring Boot 的默认设置。SpringBoot 默认使用以下 2 种全局的配置文件,其文件名是固定的。application.properties application.yml其中,application.yml 是一
2022-02-02 17:05:45
174
sampThreadWait.rar
2020-05-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅