自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(439)
  • 收藏
  • 关注

原创 SQLite:TIMESTAMP类型使用

SQLite是一种嵌入式SQL数据库引擎,被广泛应用于移动平台和嵌入式设备中。它具有轻量级、开源、无服务器的特点,可以在各种操作系统上使用,并且无需配置和管理。SQLite支持常见的SQL语法和操作,包括创建表、插入数据、更新数据、查询数据等。SQLite是一种轻量级、开源的嵌入式SQL数据库引擎,使用方便,常被应用于移动平台和嵌入式设备。在SQLite中使用CURRENT_TIMESTAMP函数可以获取当前时间戳,但需要注意的是,它返回的时间戳是基于GMT时区的,不是基于本地机器的时区。

2023-10-11 10:02:51 1940

转载 mysql时间类型使用说明

由于地域的限制,人们发明了时区的概念,用来适应人们在时间感受上的差异,比如中国的时区是东8区,表示为+8:00,或GMT+8,而日本的时区是东9区,表示为+9:00,或GMT+9,当中国是早上8点时,日本是早上9点,即东8区的8点与东9区的9点,这两个时间是相等的。这样的话,似乎java中日期类型用时间字符串来存还好些,不容易出错,但请再认真考虑一下,调用方传了一个无时区的8点,数据库自作主张,就将其认为是东9区的8点,但如果这个时间字符串实际是东8区的8点呢?

2023-10-11 09:59:06 182

原创 Python文件.py||.pyi||.pyc||.pyo||.pyd等各种文件后缀区别

.py:这通常是您编写的输入源代码。 .py3: Python3脚本(Python3脚本通常以.py而不是.py3结尾,很少使用) .pyc:这是编译好的字节码。如果您导入一个模块,python将生成一个*.pyc包含字节码的文件,以便以后再次导入它更容易(也更快)。.pyc二进制文件可以反编译成.py文件,反编译软件叫Easy Python Decompiler。 .pyo:这是在优化(-O)时创建的*.pyc文件,从Python3.5开始,Python将只使用pyc而不是pyo和pyc .pyd

2021-05-24 10:46:28 1854

转载 2021-05-23软考数据库知识点总结

三级模式-两层映射所谓的三级模式为外模式,概念模式,内模式。外模式又被称为用户模式,让用户和引用程序打交道,对数据结构的逻辑描述,操作数据的逻辑。(呈现为视图级)内模式又被称为存储模式。讲数据结构的物理存储,主要考虑到数据到底用什么方法存储。形成文件级结构概念模式不用管是如何存储的以及如何访问 数据库的技术,其又被称为模式,主要表现为表级结构何为两层映射外模式和模式的映射模式和内模式的映射映射的作用是为了让数据具有独立性,让数据和程序进行分离。数据的物理独立性在模式和内模式的映射中。

2021-05-23 14:44:14 973

原创 区块链里的一些容易混淆的概念

区块链里节点的概念首先你要知道,节点(node)只是一个词,在网络相关的文献里很常见,在不同的语境,不同的系统里会有不同的意思,并不是所有的区块链乃至p2p网络里提到节点都指的一个东西。其次,区块链这东西是什么,现在也没有明确定义。看你问题里的区块链似乎是指数据结构,但是,在现在的一般语境下,区块链是指这个分布式数据库的技术,包括这个数据结构,底层的p2p网络,以及共识算法。所以,一般谈区块链就是区块链系统,不要和p2p网络混为一谈,把这概念引进来只会让你理解起来更复杂。区块链是个分...

2020-12-07 16:44:30 560

转载 python3异步编程async/await 原理解释的比较详细的文章

身为Python核心开发组的成员,我对于这门语言的各种细节充满好奇。尽管我很清楚自己不可能对这门语言做到全知全能,但哪怕是为了能够解决各种issue和参与常规的语言设计工作,我也觉得有必要试着接触和理解Python的内核,弄清楚在底层它是怎么工作的。话虽如此,直到最近我才理解了Python3.5中async/await的工作机制。在此之前,对于async/await语法,我只知道Python3.3中的yield from和Python3.4中的asyncio让这个新语法得以在Python3.5中实现。由

2020-12-07 16:21:59 12677 2

原创 常见的并发模型2

并发与并行并发和并行都可以是相对于进程或是线程来说。并发是指一个或若干个CPU对多个进程或线程之间进行多路复用,用简单的语言来说就是CPU轮着执行多个任务,每个任务都执行一小段时间,从宏观上看起来就像是全部任务都在同时执行一样。并行则是指多个进程或线程同一时刻被执行,这是真正意义上的同时执行,它必须要有多个CPU的支持。如下图是并发和并行的执行时间图。对于并发来说,线程一线执行一段时间,然后线程二再执行一段时间,接着线程三再执行一段时间。每个线程都轮流得到CPU的执行时间,这种情况下只需要一个CPU

2020-11-19 18:42:34 423

原创 常见的并发模型

并发往往和并行一起被提及,但是我们应该明确的是“并发”不等同于“并行”• 并发:同一时间 对待 多件事情 (逻辑层面)• 并行:同一时间 做(执行) 多件事情 (物理层面)并发可以构造出一种问题解决方法,该方法能够被用于并行化,从而让原本只能串行处理的事务并行化,更好地发挥出当前多核CPU,分布式集群的能力。但是,并发编程和人们正常的思维方式是不一样的,因此才有了各种编程模型的抽象来帮助我们更方便,更不容易出错的方式构建并发程序。下面将简单...

2020-11-19 18:30:56 2048

原创 搭建CA服务器的两种方式

1, 直接生成私钥和证书openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf ca.key 就是私钥,ca.crt 就是根证书2, 先生成私钥 private.key用私钥生成自签名的证书,openssl genrsa -out mypvk.pem # 生成私钥openssl req -new -keymypvk.pem -out rootCA.csr #申请生成证书openss...

2020-09-28 16:42:43 1952 1

原创 搭建CA证书服务器过程详解

1首先要生成一个自己的私钥mypvk.pem这个密钥一定要保持好,不能泄露openssl genrsa -out mypvk.pem2, 通过这个私钥,自签名生成服务器的证书2.1 openssl req -new -keymypvk.pem -out rootCA.csr2.2 openssl ca -selfsign -in rootCA.csr会生成一个 服务器自己的证书,拷贝到配置中指定的目录下,命名保持一致3,通过生成的证书和私钥,给其他用户颁发证书o...

2020-09-28 14:32:14 2456

原创 Systemd service配置文件解析

systemd 的配置文件大部分放置于 /usr/lib/systemd/system/ 目录内。但是 Red Hat 官方文件指出, 该目录的文件主要是原本软件所提供的设置,建议不要修改!而要修改的位置应该放置于 /etc/systemd/system/ 目录内。配置文件示例:[root@study ~]# cat /usr/lib/systemd/system/sshd.service[Unit] # 这个项目与此 unit 的解释、执行服务相依性有关Desc..

2020-09-28 11:40:59 1972

原创 Openssl使用方式整理

OpenSSL 是一个开源项目,其组成主要包括一下三个组件: openssl:多用途的命令行工具 libcrypto:加密算法库 libssl:加密模块应用库,实现了ssl及tls openssl可以实现:秘钥证书管理、对称加密和非对称加密。1、对称加密对称加密需要使用的标准命令为enc,用法如下: openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d...

2020-09-28 11:33:56 251

原创 第一次把Epoll讲这么详细的文章

从事服务端开发,少不了要接触网络编程。epoll 作为 Linux 下高性能网络服务器的必备技术至关重要,nginx、Redis、Skynet 和大部分游戏服务器都使用到这一多路复用技术。epoll 很重要,但是 epoll 与 select 的区别是什么呢?epoll 高效的原因是什么?网上虽然也有不少讲解 epoll 的文章,但要么是过于浅显,或者陷入源码解析,很少能有通俗易懂的。...

2020-03-16 14:23:48 562 1

原创 linux内核详细

Linux内核的特点:结合了unix操作系统的一些基础概念转存失败重新上传取消转存失败重新上传取消Linux内核的任务:1.从技术层面讲,内核是硬件与软件之间的一个中间层。作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。2.从应用程序的层面讲,应用程序与硬件没有联系,只与内核有联系,内核是应用程序知道的层次中的最底层。在实际工作中内核抽...

2020-03-09 14:20:49 379

原创 TCP需要了解的都在这

一.TCP相关机制TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。1.确认应答在TCP中,当发送端的数据到达接收主机时,接收端主机会返回一 个已收到消息的通知。这个消息叫做确认应答(ACK(Positive Acknowled-gement)意指已经接收。)TCP通过肯定的ACK实现可靠的数据传输。当发送端将数据发出之后会等待对端的确认应答。如果...

2020-03-09 14:18:32 247

原创 Python3 Typing

typing模块的作用:类型检查,防止运行时出现参数和返回值类型不符合。 作为开发文档附加说明,方便使用者调用时传入和返回参数类型。 该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒。注意:typing模块只有在python3.5以上的版本中才可以使用,pycharm目前支持typing检查下面说说typing模块常用的方式:from typing import L...

2020-02-24 16:16:45 650

原创 netstat命令中state详解

State: 表TCP连接状态ESTABLISHED指TCP连接已建立,双方可以进行方向数据传递CLOSE_WAIT:这种状态的含义其实是表示在等待关闭。当对方close一个SOCKET后发送FIN报文给自己,你系统毫无疑问地会回应一个ACK报文给对方,此时则进入到CLOSE_WAIT状态。接下来呢,实际上你真正需要考虑的事情是察看你是否还有数据发送给对方,如果没有的话, 那么你...

2020-02-20 11:42:33 2135

原创 查看端口是否有进程启动

当一个程序明明启动了,但是访问出错或者程序明明没问题,却启动不了一种方式是应该检查端口是否被占用,linux查看端口状况的命令: netstatnetstat --tunlpnetstat -aon但是Mac系统这个命令不能用,可以使用lsoflsof -nP -i:8000lsof -i tcp:8000...

2020-02-20 11:36:54 565

原创 netstat命令详解

netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。netstat常用命令参数 1 2 3 4 5 6 7 8 9 10 ...

2020-02-20 10:47:48 489

原创 python协程及一些相关概念

【Coroutine】Coroutine:协程,又称微线程,纤程。协程的这种“挂起”和“唤醒”机制实质上是将一个过程切分成了若干个子过程,给了我们一种以扁平的方式来使用事件回调模型。优点:共享进程的上下文,一个进程可以创建百万,千万的coroutine。python中的yield和第三方库greenlet,都可以实现协程。greenlet 提供了在协程中直接切换控制权的方式,比生成器(y...

2020-02-19 15:46:29 138

原创 【Mysql】Datetime和Timestamp区别,及mysql中各种时间的使用

说到数据库时间类型,大部分同学都会想到date、datetime、timestamp之类的。我之前在项目遇到一个问题,测试同事在测试时,由于会测试205几年的数据,在入库时会抛出数据库异常,原因就是timestamp是有最大年份限制的。下面先说说datetime与timestamp的区别:datetime的默认值为null,timestamp的默认值不为null,且为系统当前时间(cu...

2020-02-17 17:35:44 741

原创 MySQL脏读、虚读、幻读

事务的特性:原子性:指处于同一个事务中的多条语句是不可分割的。 一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。比如转账,转账前两个账户余额之和为2k,转账之后也应该是2K。 隔离性:指多线程环境下,一个线程中的事务不能被其他线程中的事务打扰 持久性:事务一旦提交,就应该被永久保存起来。事务隔离性问题:如果不考虑事务的隔离性,会出现以下问题:脏读:指一个线程中...

2019-08-05 10:21:40 268

原创 Django框架之中间件(MiddleWare)解析

当Django处理一个 Request 的过程是首先通过中间件,然后再通过默认的 URL 方式进行的。我们可以在 Middleware 这个地方把所有Request 拦截住,用我们自己的方式完成处理以后直接返回 Response。因此了解中间件的构成是非常必要的。在django项目的settings模块中,有一个 MIDDLEWARE_CLASSES 变量,其中每一个元素就是一个中间件,...

2019-06-24 16:15:03 1778

原创 在django的View中使用asyncio(协程)和ThreadPoolExecutor(多线程)

Django视图函数执行,不在主线程中,直接loop = asyncio.new_event_loop() # 更不能loop = asyncio.get_event_loop()会触发RuntimeError: There is no current event loop in thread因为asyncio程序中的每个线程都有自己的事件循环,但它只会在主线程...

2019-06-20 10:20:39 3973 3

原创 pandas处理Excel

生成数据表1、首先导入pandas库,一般都会用到numpy库,所以我们先导入备用:import numpy as npimport pandas as pd2、导入CSV或者xlsx文件:data =pd.read_csv(‘name.csv’,header=1) 默认读取第一个sheetdata =pd.read_csv(‘name.csv’,sheet_name...

2019-06-20 09:57:13 1207

原创 缓存算法LRU和LFU比较

对于web开发而言,缓存必不可少,也是提高性能最常用的方式。无论是浏览器缓存(如果是chrome浏览器,可以通过chrome:://cache查看),还是服务端的缓存(通过memcached或者redis等内存数据库)。缓存不仅可以加速用户的访问,同时也可以降低服务器的负载和压力。那么,了解常见的缓存淘汰算法的策略和原理就显得特别重要。常见的缓存算法LRU (Least recently ...

2019-06-20 09:54:17 3638

原创 同源策略,跨域,CORS

1、先来说说什么是源• 源(origin)就是协议、域名和端口号。以上url中的源就是:http://www.company.com:80若地址里面的协议、域名和端口号均相同则属于同源。以下是相对于http://www.a.com/test/index.html的同源检测• http://www.a.com/dir/page.html----成功• http://www.chil...

2019-04-22 15:15:27 365

原创 MAC npm install 权限问题报错

最近在进行mac 命令行安装软件的时候,有的时候会遇见这样的问题:如下:npm WARN checkPermissions Missing write access to /usr/local/lib/node_modulesnpm ERR! path /usr/local/lib/node_modulesnpm ERR! code EACCESnpm ERR! errno ...

2019-04-19 12:04:48 3460 1

原创 gevent的深入实践

Gevent是python的第三方库,提供了比较完善的对协程的支持。Python中GIL的存在,导致多线程一直不是很好用,相形之下,协程的优势就更加突出了。Gevent的基本思想是:当遇到IO操作时,会自动写换到其他gevent,再在适当的时间切回来继续执行。这样就减少了IO操作时的等待耗时,从而能够提高硬件资源的利用率。注:本文使用python版本2.7.12, gevent版本1.2.2...

2019-04-19 09:58:59 732

原创 项目管理:十大领域,五大过程,44个定义

PMBOK五大过程组是什么?PMBOK五大过程组是:启动过程、规划过程、执行过程、监控过程、收尾过程。各用一句话概括项目管理知识体系五大过程组:1、启动过程组:作用是设定项目目标,让项目团队有事可做;2、规划过程组:作用是制定工作路线,让项目团队“有法可依”;3、执行过程组:作用是“按图索骥”,让项目团队“有...

2019-04-17 14:23:41 13609 1

原创 Java泛型详细说明

1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?首先说下泛型的好处:A:把运行时期的问题提前到了编译期间B:避免了强制类型转换C:优化了程序设计,解决了黄色警告线问题,让程序更安全然后我们继续往下说2. 一个栗子一个被举了无数次的例子:List arrayList = new...

2019-04-17 11:09:10 201 1

原创 jdk1.5~jdk8新特性整理

JDK各个版本的新特性对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言。今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性。希望能给予帮助。JDK1.5新特性:1.自动装箱与拆箱:自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型...

2019-04-16 15:24:13 186

原创 Java常用注解分类

JDK自带注解@Override  重写,标识覆盖它的父类的方法 @Deprecated   已过期,表示方法是不被建议使用的 @Suppvisewarnings   抑制警告元注解@Target  表示该注解用于什么地方,可取的值包括:ElemenetType.CONSTRUCTOR     构造器声明 ElemenetType.FIELD          ...

2019-04-16 14:43:58 467

原创 Java自定义注解

一、注解的基础1.注解的定义:Java文件叫做Annotation,用@interface表示。2.元注解:@interface上面按需要注解上一些东西,包括@Retention、@Target、@Document、@Inherited四种。3.注解的保留策略:  @Retention(RetentionPolicy.SOURCE)// 注解仅存在于源码中,在class字节码...

2019-04-16 14:27:51 119

原创 JAVA 8 Stream 总结

什么是Stream首先要说的是,不要被它的名称骗了,这里的Stream跟JAVA I/O中的InputStream和OutputStream是两个不同的概念。Java 8中的Stream其实是函数式编程里Monad的概念,关于Monad,感觉还是比较抽象,不好理解,可以参考这篇文章,个人觉得还是比较好看懂的,简单说,Monad就是一种设计模式,表示将一个运算过程,通过函数拆解成互相连接的多个步...

2019-04-09 18:21:52 203

原创 JAVA8新特性详解

前言:Java8 已经发布很久了,很多报道表明Java8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and Concurrency、Java 8 Date Time API Tutorial : LocalDateTime和Abstract Class Versus In...

2019-03-28 10:40:55 107

原创 Java AOP开发模式@Aspect注解说明

2 注解说明2.1 @Aspect作用是把当前类标识为一个切面供容器读取2.2 @Before标识一个前置增强方法,相当于BeforeAdvice的功能,相似功能的还有2.3 @AfterReturning后置增强,相当于AfterReturningAdvice,方法正常退出时执行2.4 @AfterThrowing异常抛出增强,相当于ThrowsAdvice2....

2019-03-28 10:39:11 12623

原创 使用spawn expect创建快捷命令

安装tcl tclx tcl-develyum install -y tcl tclx tcl-devel安装expect yum install expect -y创建文件ssh_quick.epr#!/usr/bin/expectif {$argc < 1} { set remote_host "10.24.18.3"} else { se...

2019-03-28 10:36:05 317

原创 Java学习--spring AOP

spring提供了两个核心功能,一个是IoC(控制反转),另外一个便是Aop(面向切面编程),IoC有助于应用对象之间的解耦,AOP则可以实现横切关注点(如日志、安全、缓存和事务管理)与他们所影响的对象之间的解耦。1.简介AOP主要包含了通知、切点和连接点等术语,介绍如下 通知(Advice) 通知定义了切面是什么以及何时调用,何时调用包含以下几种 Before 在方法被调...

2019-01-17 16:10:07 109

原创 Java学习--spring原理

1、spring原理       内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置文件来动态的创建对象,和调用对象里的方法的 。        Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控...

2019-01-17 16:08:22 282

空空如也

空空如也

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

TA关注的人

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