自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 问答 (1)
  • 收藏
  • 关注

原创 Redis中的SDS、字典和跳表以及它们的应用

Redis底层数结构1 SDS在Redis中使用简单动态字符串(SDS)来表示字符串sdshdr8的结构:各属性为:len: 已使用的长度 不包括'\0'alloc:当前字符数组分配的长度 不包括'\0'flag: 表示字符数组的类型 // flags值定义 #define SDS_TYPE_5 0 #define SDS_TYPE_8 1 #define SDS_TYPE_16 2 #define SDS_TYPE_32 3 #de

2020-05-17 18:40:13 1493 4

原创 Redis哨兵模式及其运行原理解析

搭建一主二从三哨兵作用:读写分离 容灾恢复启动多台redis容器,修改配置文件中的端口号以及日志文件名称其实对于容器,可以不修改端口,只需启动容器时映射不同的端口即可1 修改master和slave的配置文件master# 注释这一行,表示Redis可以接受任意ip的连接# bind 127.0.0.1 # 关闭保护模式protected-mode no # 让redis服务后台运行daemonize no # 设定密码(可选,如果这里开启了密码要求,slave的配置里就要加这

2020-05-17 13:27:11 595 1

原创 Redis持久化中的RDB、AOF以及混合模式

Redis持久化1 RDB在指定的时间间隔内将内存中的数据以快照的形式保存到磁盘过程:1 客户端执行bgsave命令,redis主进程收到指令并判断此时是否在执行bgrewriteaof,如果此时正好在执行则bgsave直接返回,不fork子进程,如果没有执行2bgrewriteaof重写AOF文件,则进入下一个阶段;3主进程调用fork方法创建子进程,在创建过程中redis主进程阻塞,所以不能响应客户端请求;4子进程创建完成以后,bgsave命令返回“Background saving st

2020-05-17 13:07:23 6344

原创 Redis的线程模型以及文件事件和时间事件

Redis的线程模型Redis内部使用文件事件处理器,它是单线程的同时采用IO复用来监听多个Socket,根据Scoket上的事件来选择对应的事件处理器文件事件处理器的结构:多个Socket、IO多路复用程序、 事件分派器以及事件处理器(连接应答处理器、命令请求处理器、命令恢复处理器)事件处理器本质上是一个个的函数,用于定义当某个事件发生时,redis该执行什么动作当并发出现文件事件时,IO复用程序会把对应的scoket放入队列中,事件分派器从队列中取出socket,根据事件类型,把soc

2020-05-17 12:29:21 621

原创 常见设计模式以及它们在Spring中的应用

Spring中用到的设计模式1 工厂方法模式:Spring使用工厂模式通过BeanFactory ApplicationContext简单工厂模式:BeanFactory.getBean() 根据id从IoC中获取Bean2 代理模式:AOP中的动态代理3 单例模式:Spring中的Bean默认作用范围是为单例4 适配器模式:AOP的通知、 SpringMVC中前端控制器调用Contro...

2020-04-19 18:39:09 318

原创 JVM内存结构JMM分析

JVM内存结构学习简介JVM载执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。Java 虚拟机所管理的内存一共分为Method Area(方法区)、VM Stack(虚拟机栈)、Native Method Stack(本地方法栈)、Heap(堆)、Program Counter Register(程序计数器)五个区域。这些区域都有各自的用途,以及创建和销毁的时间,有的...

2020-03-08 12:09:26 142

原创 Java中线程池的使用和分析

为什么要使用线程池1 线程复用 控制最大并发数 管理线程2 降低消耗:可以直接从线程 中取出线程,避免创建新线程时的消耗3 提高响应速度:当任务到达时,不需要等待线程的创建4 提高线程的可管理性:如果随意创建多个线程,会浪费系统资源。使用线程池可以统一分配管理。线程池的运行流程①如果在线程池中的线程数量没有达到核心的线程数量,这时候就会启动一个核心线程来执行任务。(即优先使用核心线程...

2020-02-25 14:02:30 201

原创 Spring中的AOP解析

简介如果说 IoC 是 Spring 的核心,那么面向切面编程就是 Spring 最为重要的功能之一了,在数据库事务中切面编程被广泛使用。AOP 即 Aspect Oriented Program 面向切面编程首先,在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能。所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务所谓的周边功能,比如性能统计,日志,事务管理等等周边功...

2020-02-22 15:39:31 229

原创 Spring IOC原理学习笔记

Spring容器高层视图Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖关系,为上层应用提供准备就绪的运行环境。IOC容器介绍pring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系,利用 Java 语言的反射功能实例化 Bean 并建立 Bean 之间...

2020-02-15 08:38:31 250

原创 Eureka搭建集群

搭建服务端集群1 创建工程并引入相关依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocati...

2020-02-06 15:01:09 110

原创 使用JWT实现单点登录过程解析

1 什么是JWTSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且独立的方式,可以在各方之间作为JSON对象安全地传输信息。此信息可以通过数字签名进行验证和信任。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。虽然JWT可以加密以在各方之间提供保密,但只将专注于签名令牌。签名令牌可以验证其中包含的声明的完整性,而加...

2020-02-03 10:14:24 1537

原创 SpringBoot启动过程及原理

今天,我们来一起学习下SpringBoot的启动原理。首先我们从SprintBoot的主类中的Main方法开始@SpringBootApplicationpublic class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}从...

2020-01-16 18:54:41 258

原创 .net core webapi中的路由规则

.net core webapi中的路由规则       在webapi中,我们通常会创建Restful风格的接口,也就是api地址中只包含控制器的名称,不表明action的名称,然后通过提交请求的方式以及参数来判断要执行该controll中的哪个action。下面我看几个例子.默认的路由规则[Route("api/[co...

2019-10-19 17:06:24 2284

原创 在scala中使用JdbcRDD时遇到的序列化问题

在scala中使用JdbcRDD时遇到的序列化问题在scala中初始化一个JdbcRDD时,我们需要传递如下几个参数。val sql = "select * from Topic where TopicId >= ? and TopicId <= ?" val minId = 0 val maxId = 1000000 val numPartitions =...

2019-10-08 19:46:26 272

原创 Spark中的RDD以及分区

Spark中的RDD以及分区RDD 在spark中,最重要的概念就是RDD,它本质上是一个数据的引用,可以把它理解为C语言中的指针,即RDD本身是不存储数据的,但是通过操作RDD,我们就可以直接操作保存在分布式系统中的数据。所以RDD是存储在系统中数据的一个代理。        在上面的图片中,我们可以看到...

2019-10-06 21:00:54 883

原创 通过简单工厂+反射+配置文件实现程序的可扩展

通过简单工厂+反射+配置文件实现程序的可扩展1 通过简单工厂模式实现面向接口编程假设我们有一下几个类代表游戏用不用的角色//继承接口类 public class Human { //重写接口类方法 public void ShowKing() { Console.WriteLine("The king o...

2019-06-12 10:07:57 340

原创 C#单例设计模式和原型模式学习

C#单例设计模式学习       首先我们来用一句话解释下单例模式是什么,它就是一种只会把对象实例化一次的设计模式,也就是说,在程序的运行过程中,只会运行一次这个类的构造函数。那到底为什么要用单例呢,我们先来看下面这个类的构造函数。public FirstSingle(){ Thread.Sleep(2000);...

2019-06-11 17:01:09 181 1

原创 C#多线程的使用与安全问题的学习

C#多线程学习1 使用委托创建线程     我们先使用委托来创建一个线程,关于委托入门学习可以看我的另一篇文章。     第一步是创建一个无返回值的方法 public static void DoSomething(string name){ Console.WriteLine("DoSomething...

2019-06-03 14:59:46 489 4

原创 使用VM制作Centos的本地Yum源

我们在Linux上安装新功能时,使用yum来 经行安装是比较方便的,但是在实际生产开发中,Linux没有和外网连接。所以我们就可以通过本地的Yum源来添加新功能。接下来我就一步步地演示如何制作本地Yum源。首先准备一个完整版的Centos安装镜像,通常大小为4G,即DVD ISO。然后打开Linux虚拟机地设置然后修改CD/DVD地内容,选择我们刚才准备地Centos完整安装包。接下...

2019-05-02 22:09:37 205

原创 在MapReduce中使用自定义的类作为KeyIn 和KeyOut

在MapReduce中使用自定义的类作为KeyIn 和KeyOut在MapReduce中,框架给我们提供了一些简单了数据类型作为KeyIn和KeyOut,例如LongWritable、Text、NullWritable。但是在实际开发中这些类型是远远不够用的,有时候我们必须使用自定义的类,但是自定义的类必须符合框架的规范,因为在Map和Reduce的过程中,靠的就是KeyIn和KeyOut背后实...

2019-04-21 10:48:16 1255

原创 从客户端中检测到有危险的 Request.QueryString 值 的解决方法

如果在页面中,将文本编辑器内的文本内容直接提交给后台后提示“存在危险的 Request.QueryString 值“,如下图所示 错误发生的原因 那是因为文本编辑器自动设置了文本的格式,即添加了各种HTML标签,所以我们在使用里面的内容时,需要在前台用JS方法将HTML标签进行编码,将编码后的文本内容传递给后台,在后台用C#的方法将它解码成HTML标签后存到数据库中。 编码后的内容

2018-05-10 13:24:08 4786

原创 配置本地环境 通过ODBC连接远程Oracle数据库

配置本地环境 通过ODBC连接远程Oracle数据库相信大家在刚开始学习Oracle时,在通过本地ODBC连接远程服务器上的Oracle时会出现这样的错误提示符信息 其实解决方法很简单 第一步 下载Oracel客户端文件 链接:https://pan.baidu.com/s/1DO4NmcB_YKAOXOSLPCw85Q 密码:8e69 然后解压后放在D盘根目录下 第二步 ...

2018-03-16 15:49:13 9922 1

原创 C#之同步、异步、多线程

C#之同步、异步、多线程今天我们来一起学习C#中的同步。异步以及多线程。在学习这些之前,我们先来简单地了解下进程和线程之间的关系,一个应用程序即一个进程,而一个进程的执行需要多个线程来辅助,所以运行一个进程后,会运行多个线程。所谓的同步,即按照代码的顺序执行,也就是用同一个线程来执行所有的操作。而在执行异步操作时,会启动多个线程来执行各个操作,并且他们开启的顺序以及执行的时间各不相同,具体的区别我们

2018-02-25 14:58:28 2445

原创 C#之委托和事件入门

C#之委托和事件入门今天是新年开始上班的第一天,祝大家工作顺利。接下来我们一起来学习C#中的委托和事件。它们两个的关系非常密切,我们先从委托开始。1 委托的定义、声明与调用 创建一个名为MyDelegate的控制台项目,并添加一个DelegateClass.cs。 public delegate void NoReturnWithPara(int x, int y);//声明委托...

2018-02-23 17:15:30 272 2

原创 C#之反射学习入门简介

C#之反射学习入门简介在c#中,通过反射能够更加灵活高效地实现想要的功能,接下来我们就一起来看看反射到底能给我们带来什么好处首先新建一个接口类库using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace DB.Interface{ publ...

2018-02-20 23:00:31 178

原创 c#中泛型的解析

c#泛型入门简介在c#中,我们通常用泛型来处理某个类或方法。比如某个方法要实现某个功能,但 参数的类型不同,我们可以采用重载方法来实现,但这个方法就要重复定义很多遍,所以为了高效,我们可以采用泛型。1 泛型方法 首先来看一下不用泛型来实现某个功能using System;using System.Collections.Generi...

2018-02-20 16:08:11 266

原创 GitHub的用法简介

今天给大家分享一下GitHub的使用方法。我会从账号注册介绍到客户端的安装。1 注册GItHub账号 首先是要在githhub官网注册一个账号 点击注册链接后就跳转到注册界面了 在该页面完成个人注册 完成注册并登陆后会显示下面这个页面 2 安装GitHub for Windows首先下载安装包 安装完成后软件软件界面如图所示 然后依次点...

2018-02-16 21:10:23 236

原创 Gridview中通过某个空间获取当前行的索引

```protected void TextBox1_TextChanged(object sender, EventArgs e) { TextBox time = (TextBox)sender; GridViewRow drv = (GridViewRow)time.NamingContainer;```}

2017-12-07 20:25:38 213

原创 jquery库实现iframe自适应内容高度和宽度解析

javascript原生和jquery库实现iframe自适应内容高度和宽度—推荐使用jQuery的代码! ‍<iframe src="index.php" id="mainiframe" name="mainiframe" width="100%" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"></iframe>

2017-09-13 19:29:46 482

原创 使用SQL语句实现真分页

在Wwb开发中,经常要用从数据库读取大量信息在页面中显示,页是指在从数据库读取数据时,一次只读取一页要显示的数据,当要显示下一页时,再从数据库中读取一定量的数据,这样就能提高页面的访问效率,并能降低服务器的压力。可采用SQL语句来实现真分页,具体过程如下:select * from (select *, row_number() over(order by studentid des...

2017-08-30 15:11:47 723

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除