暂无个人介绍
IdGenerator介绍 用一种全新的雪花漂移算法,让ID更短、生成速度更快。 核心在于缩短ID长度的同时,还能保持每毫秒并发处理量(50W/0.1s),且能保持伸缩能力。 需求来源 1.作为架构设计的你,想要解决数据库主键唯一的问题。 2.你希望这个主键是用最少的存储空间,索引速度更快。 3.你还会考虑在分库分表(合库合表)的时候,主键值能直接使用,并能反映业务时序。
前言 NoSQL,泛指非关系型的数据库。随着互联网不断的发展,非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。用得比较多的三个NoSQL:Memcached、Redis、MongoDB。 Memcached 优点 Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度扛量。支持直接配置为session handle。
在我们的工作中,数据库某些表的字段会用到唯一的,趋势递增的订单编号,我们将介绍两种方法,一种是传统的采用随机数生成的方式,另外一种是采用当前比较流行的“分布式唯一ID生成算法-雪花算法”来实现。 一、时间戳随机数生成唯一ID 我们写一个for循环,用 RandomUtil.generateOrderCode()生成1000个唯一ID,执行结果我们会发现出现重复的ID。
分布式锁应该具备哪些条件 在分析分布式锁的三种实现方式之前,先了解一下分布式锁应该具备哪些条件: 在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行;高可用的获取锁与释放锁;高性能的获取锁与释放锁;具备可重入特性;具备锁失效机制,防止死锁;具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败。分布式锁的三种实现方式
什么是全栈工程师 现在,技术其实变得越来越简单。云服务就在提供水和电。 所以你需要充分的去了解PAAS服务的平台,amazon的服务,github的服务,让技术不再成为门槛,让事情聚焦在提供专业的价值上面。这也就是世界级的IT支持了,你再也不用担心“只差一个程序员”了。 LAMP的技术栈 MEAN的技术栈 作者提出全栈工程师或者说工程师的前景: 一专多长解决问题而不是醉心技术
本文主要介绍我个人的一种工作学习方式:点线面的工作学习方式。希望对大家以后的工作和职业发展有所启发和帮助。 7月份的时候,我去京东外面的世界转了转,聊了聊。切身体会到:别人其实并不关心你之前做的具体工作,关心的是你从中得到了什么。当然,如果你是一直深耕一个业务领域的专家,除外,例如一直从事金融风控领域的技术开发。 面试中,我之前在啥啥公司做了啥啥项目,这个项目业务怎么怎么的复杂,功能怎么怎么的牛批,一顿业务功能的输出。 so ?然后呢 ?
概述 单例模式保证对于每一个类加载器,一个类仅有一个实例并且提供全局的访问。其是一种对象创建型模式。对于单例模式主要适用以下几个场景: 系统只需要一个实例对象,如提供一个唯一的序列号生成器客户调用类的单个实例只允许使用一个公共访问点,除了该公共访问点,不能通过其他途径访问该实例 单例模式的缺点之一是在分布式环境中,如果因为单例模式而产生 bugs,那么很难通过调试找出问题所在,因为在单个类加载器下进行调试,并不会出现问题。
乔治·霍苏·9分钟阅读 Clickhouse是一个相当新的列存数据库。它是由Yandex(俄罗斯谷歌)的人开发的,水平扩展相当好,并在数百亿行的数据上运行高速聚合查询。 它使用自己的SQL方言,并在表达性和简单性方面匹配PL / PGSQL。它甚至包括用于在行中使用嵌套对象的更高阶函数,例如ArrayMap和ArrayFilter。 什么是Clickhouse? 简而言之,Clickhouse用于在非常大量的数据上运行快速分析。它的事务功能相当糟糕,但它可以在数十亿行中运行秒级聚合查询。
数据挖掘是一种技术,它将传统的数据分析方法与处理大量数据的复杂算法相结合,在一个大型数据库中,自动的发现有用信息的过程,还具有预测未来观测结果的能力。数据挖掘的对象是数据,所以离开数据,挖掘无从谈起。现将我学习《数据挖掘导论》的笔记写出来,巩固一下知识。 一、数据类型。 数据对象有其它的名字,如记录,点,向量,模式,事件,案例,样本,观测或实体。
Spark是一种大规模、快速计算的集群平台,本头条号试图通过学习Spark官网的实战演练笔记提升笔者实操能力以及展现Spark的精彩之处。有关框架介绍和环境配置可以参考以下内容: linux下Hadoop安装与环境配置(附详细步骤和安装包下载) linux下Spark安装与环境配置(附详细步骤和安装包下载)
0.在Hadoop中定义的主要公用InputFormat中,默认是哪一个?(A) A、 TextInputFormat B、 KeyValueInputFormat C、 SequenceFileInputFormat 1. 下面哪个程序负责 HDFS 数据存储?(C)
API的定义取决于选择的IPC通信方式,如果是消息机制(如 AMQP 或者 STOMP),API则由消息频道(channel)和消息类型;如果是使用HTTP机制,则是基于请求/响应(调用http的url),这里我们先简述下RestfulAPI的定义。 设计原则 域名 应该尽量将API部署在专用域名之下,如: 也可以放在主域名下: 版本
我在大公司干活前,基本都在小公司之间辗转,对比两种公司的经历,切身感受到“人往高处走“绝非是空话。我在之前的博文里,多次讲到程序员该去大厂看看,在这篇博文里,将结合我和我朋友的所见所闻,从技术和发展前景等方面,综合讲述小公司和大公司里程序员的普遍差别,以此再让大家感受下大公司经历的重要性。不过本文不是停留于此,还更将针对小公司干杂事的程序员,给出逆袭到大厂的若干建议,好正文开始。
#0 前言 入职新公司没多久,闲来无事在博客园闲逛,看到园友分享的面试经历,正好自己这段时间面试找工作,也挺多感想的,干脆趁这个机会总结整理一下。 博主13年开始实习,14年毕业。到现在也工作五六年了。今年面试最大的感受就是触及了.net的天花板。坐标,杭州。 #1 背景
知识星球里有人吐槽,说一些名校毕业生的项目经验,明显都是刷出来的,前一年一水的电子商城,今年一水的秒杀系统。 我相信每个应届生都会面临这个问题,简历里希望填充一些可以让用人单位高看一眼的项目经验,校方或某些第三方机构可能会给一些实习项目,帮助学生攒这样的项目经验,甚至可能已经是一条龙服务,学生只要跟着项目按部就班的做一点基础工作,就可以堂而皇之的把经验写入简历,并希望作为就业的敲门砖。 那么,今天,说一下,作为面试官,是怎么看待这些项目经验的。 当然,面试官有很多种,我只以我为例,我认为自己应该具有一定的代表性,但不要苛求普适性。
做产品,首先,我们需要考虑到用户需求。那么,用户需求又从哪里得知呢? 首先,收集二手数据+一手数据 一般是先收集二手数据,因为这些数据是已经被处理筛选过的数据,所以真实率都会比较高。但是,对于很多冷门的产品或者服务而言, 如果市场上的数据不够充分,我们就要自己开始动手设计调查问卷了。 设计问卷前解决的几个问题:
我读取 缓存的最好的比喻 来自Peter Chester,他在WordPress会议期间使用。他问观众,“3,485,250分为23,235”?最初的沉默之后,有些人把他们的计算器拿出来,最后有人大声喊道:“150.”切斯特先生又问了一个同样的问题,能够回应 这是缓存! 总而言之,这是一个非常简单的缓存情况,因为答案总是一样的。但隐喻是太棒了!实质上,缓存是关于经济。我们为等待响应的客户节省时间。我们节省资源,重新计算我们已经知道的答案。我们节省带宽。 我们该怎么做?通过保持一些响应“更接近”请求者并再次服务,而不必返回原始服务器并再次计算答案。
视频加载中... Store.js的使用,分为以下几个步骤: 引入store.js Import store from ‘../vuex/store.js’ 注册store在DOM中使用 {{ this.$store.state.count }}
Swarm 是分布式存储平台和内容分发服务,是以太坊 web3 栈的本地基础层服务。Swarm 的主要目标是提供充分分散和冗余存储的以太坊公共记录,尤其是存储和分发 DApp 的代码和数据以及区块链数据。从经济角度来看,它允许参与者有效汇集他们的存储容量和带宽资源,以给网络的所有参与者提供这些服务,同时接受以太坊的激励。 目标 Swarm 更广泛的目标,是为去中心化的 web 应用程序(DApp)开发人员提供基础设施服务,特别是:消息传递、数据流、点对点记账、可变资源更新、存储保险、监管扫描和修复、支付渠道和数据库服务。
一、简介: SQLite是目前最流行的开源嵌入式数据库,和很多其他嵌入式存储引擎相比(NoSQL),如BerkeleyDB、MemBASE等,SQLite可以很好的支持关系型数据库所具备的一些基本特征,如标准SQL语法、事务、数据表和索引等。事实上,尽管SQLite拥有诸多关系型数据库的基本特征,然而由于应用场景的不同,它们之间并没有更多的可比性。下面我们将列举一下SQLite的主要特征: 1). 管理简单,甚至可以认为无需管理。 2). 操作方便,SQLite生成的数据库文件可以在各个平台无缝移植。 3). 可以非常方便的以多种形式嵌入到其他应用程序中,如静态库、
最近在做一个“温湿度控制”的项目,项目要求通过用户设定的温湿度数值和实时采集到的数值进行比对分析,因为数据的对比与分析是一个通过前端页面控制的定时任务,经理要求在用户开启定时任务时,单独开启一个线程进行数据的对比分析,并将采集到的温湿度数值存入数据库中的历史数据表,按照我们正常的逻辑应该是用户在请求开启定时任务时,前端页面通过调用后端接口,创建一个新的线程来执行定时任务,然后在线程类中使用 @Autowired 注解注入保存历史数据的service层,在线程类中调用service层保存历史数据的方法实现温湿度数据的保存,这时就出现了一个很尴尬的问题,在新开启的线程中使用 @Autowire
前言 一般来说,我们用SpringSecurity默认的话是前后端整在一起的,比如thymeleaf或者Freemarker,SpringSecurity还自带login登录页,还让你配置登出页,错误页。 但是现在前后端分离才是正道,前后端分离的话,那就需要将返回的页面换成Json格式交给前端处理了 SpringSecurity默认的是采用Session来判断请求的用户是否登录的,但是不方便分布式的扩展,虽然SpringSecurity也支持采用SpringSession来管理分布式下的用户状态,不过现在分布式的还是无状态的Jwt比较主流。
Spring 及其优点 大部分项目都少不了Spring的身影,为什么大家对他如此青睐,而且对他的追捧丝毫没有减退之势呢Spring是什么:Spring是一个轻量级的DI和AOP容器框架。说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于spring开发的应用一般不依赖于spring的类。DI:称作依赖注入(Dependency Injection),和控制反转一个概念,具体的讲,当一个角色需要另外一个角色协助的时候,在传统的程序设计中,通常有调用者来创建被调用者的实例。但是在spring中创建被调用者将不再有调用者完
#!/usr/bin/env python # -*- coding:utf-8 -*- import sys import re import urllib, urllib2 import requests import pymongo import datetime
#coding=utf-8 import requests from pymongo import MongoClient #数据库建立 c=MongoClient(host='127.0.0.1',port=27017) db=c['zhilian'] collection=db['zhilianhtml']
Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结。本章节通过配置文件,触发快照的方式,恢复数据的操作,命令操作演示,优缺点来学习 Redis 的重点知识持久化。 RDB 详解 RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。 从配置文件了解RDB
一、QT简介 1、QT简介 QT是一个跨平台的C++图形用户界面库,由挪威TrollTech公司出品,目前包括Qt Creator, QtEmbedded,Qt Designer快速开发工具,Qt Linguist国际化工具等部分,Qt支持所有Linux/Unix系统,还支持Windows平台。 2、QT优点 Qt是一个跨平台的C++图形用户界面应用程序框架,提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt很容易扩展,并且允许真正地组件编程。Qt与GTK、KDE、MFC,OWL,VCL,ATL是一样的图形界面库。
一、XML文档简介 XML(Extensible Markup Language,可扩展标记语言),是一种通用的文本格式,被广泛运用于数据交换和数据存储,而不是显示数据。XML的标签没有被预定义,用户需要在使用时自行进行定义。XML是W3C(万维网联盟)的推荐标准。相对于数据库表格的二维表示,XML使用的树形结构更能表现出数据的包含关系,作为一种文本文件格式,XML简单明了的特性使得它在信息存储和描述领域非常流行。
爬虫处理之结构化数据操作 目录 正则表达式提取数据 正则表达式案例操作 Xpath提取数据 Xpath案例操作 BeautifulSoup4提取数据 BeautifulSoup4案例操作
__exact 精确等于 like ‘aaa’ __iexact 精确等于 忽略大小写 ilike ‘aaa’ __contains 包含 like ‘%aaa%’ __icontains 包含 忽略大小写 ilike ‘%aaa%’,但是对于sqlite来说,contains的作用效果等同于icontains。
查看数据库 from pymongo import MongoClient connect=MongoClient(host='localhost', port=27017, username="root", password="123456") connect=MongoClient('mongodb://localhost:27017/', username="root", password="123456") print(connect.list_database_names())
1、在ORACLE中返回游标结果集 写包: create or replace package pag_cs_power as type c_Type is ref cursor; FUNCTION FUN_CS_GETDICTLIST( v_DictIndex in varchar2) return c_Type; end pag_cs_power; 函数:
所谓格式化日期指的是将日期转为字符串,或将字符串转为日期,下面几个函数可以用来格式化日期。 TO_CHAR(datetime, 'format') TO_DATE(character, 'format') TO_TIMESTAMP(character, 'format')
概述 Oracle的sequence,就是序列号,它提供一系列的按照事先指定的方式进行增长的数字。oracle sequence的最大值是38个整数。【 Sequences are database objects from which multiple users can generate unique integers.】。一般来说,sequence常用于生成数据库的主键。 Oracle将sequence的定义存储在数据字典之中,因此,所有的sequence都在数据库的SYSTEM表空间里面。
Oracle查询的时候条件要用单引号包裹,不能用双引号。。。。。。。。 连接orcl数据库 C:\Windows\system32>sqlplus sys/123456@orcl as sysdba SQL*Plus: Release 11.2.0.1.0 Production on 星期五 2月 2 14:32:34 2021 Copyright (c) 1982, 2010, Oracle. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0
查询时间范围内对应的年 SELECT TO_CHAR ( ADD_MONTHS ( TO_DATE ('2013', 'yyyy'), (ROWNUM - 1) * 12 ), 'yyyy' ) AS years
1、SQL语句尽量用大写的 因为oracle总是先解析SQL语句,把小写的字母转换成大写的再执行。 2、使用表的别名 当在SQL语句中连接多个表时, 尽量使用表的别名并把别名前缀于每个列上。这样一来, 就可以减少解析的时间并减少那些由列歧义引起的语法错误。 3、选择最有效率的表名顺序(只在基于规则的优化器(RBO)中有效)
想进网络安全行业,不懂英文可还行? 昨天跟大家分享了P开头的英文词汇,今天继续跟大家分享N开头网络安全方面的英文,这方面比较弱的同学自取吧!如果不需要,可以略过哦~ N Instances N个实例 N Parties N个参与方 NAF Non-Adjacent Form(非相邻形式)
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。 和find相比,whereis查找的速度非常快,这是因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。
在上节的笔记中,大家还记得那条防火墙的设置命令么?为什么要使用防火墙呢?Linux 系统中,安全的第一道防线就是它。跟 Windows中防火墙一样,都是要设置端口的开放与关闭。那除了增加的命令之外,还有没有其它的操作呢?是如何实现的?那我们本节进行简单地讲解一下与防火墙有关的笔记内容。 防火墙的配置,在 Centos 6 以前是使用命令iptables,而到了 Centos 7以之后的版本,改成了 firewall-cmd命令,为了大家更方便的理解,我把整个过程分解成(查看状态、增加端口操作、其它安全设置)三个方面给大家讲解,让大家尽可能明白防火墙是如何去配置的。
Linux系统下安装Redis数据库。 1.首先将我们的压缩包放到opt文件夹下。redis-3.0.4.tar.gz这是我的压缩包。 2.然后使用命令进行解压,tar -zxvf 压缩包 tar -zxvf redis-3.0.4.tar.gz //解压Redis包 3.使用make命令进行安装。 如果失败的话应该是没安装上gcc编辑器,一般都会报这个错。
根文件系统 /bin 这一目录中存放了供所有用户使用的完成基本维护任务的命令。其中bin是binary的缩写,表示二进制文件,通常为可执行文件。一些常用的系统命令,如cp、ls等保存在该目录中。
linux安装oracle client客户端远程连接数据库。 1.到oracle官网下载basic,sqlplus,devel三个软件包 oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.tar oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.tar oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.tar 2.到root用户下创建一个oracle文件夹
消息交付可靠性保障:Kafka对Producer和Consumer要处理的消息所提供的承诺常见的承诺最多一次(at most once):消息可能会丢失,但绝不会被重复发送至少一次 (at least once):消息不会丢失,但有可能被重复发送精确一次(exactly once):消息不会丢失,也不会被重复发送Kafka默认提供的交付可靠性保障:至少一次只有Broker成功提交 消息且Producer接到Broker的应答才会认为该消息成功发送如果Broker成功提交消息,但Broker的应答没有成功送回Producer端,Producer只能选择重试最多一次Kafka也可以提供最多一
# 什么是JPA JPA是一种规范,它简化了现有持久化的开发,并且充分吸收了Hibernate、TopLInk、JDO等框架。SpringData JPA是全自动框架,不需要自己写sql,当然也可以自己写sql实现。而自动生成sql这点是优点,也是缺点,因为生成的sql可读性差,而且一些业务比如执行逻辑删除等还是需要自己来实现sql。 # 什么是Mybatis Mybatis是一种半自动的ORM框架,它简单易上手,没有第三方依赖,支持对象与数据库的ORM关系映射,将sql代码与业务代码分离,使得开发人员可以更自如的写出高效的sql,不过反过来说不像SpringData J
JDBC是什么? JDBC是Sun提供的一套数据库编程接口API函数,由Java语言编写的类、界面组成。 JDBC API 的设计初衷就是为了让简单的事情更简单,这意味着JDBC使得执行所有数据库任务都更容易. 用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统。不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。 Java和JDBC的结合可以让开发人员在开发数据库应用程序时真正实现“WriteOnce,RunEverywhere!” JDBC的用途是什么?
JDBC (Java Database Connectivity) JDBC本质上属于一种服务,服务的特征,必须按照指定的规范进行操作 JDBC相关概念核心包java.sqlDriverManagerConnectionStatementPreparedStatementResultSetJDBC学习教程 分享给大家JDBC的学习教程,在视频中详细讲解了Java语言如何连接数据库,对数据库中的数据进行增删改查操作,适合于已经学习过Java编程基础以及数据库的同学。
见过很多人在进行异常处理的时候,直接一个 e.printStackTrace() 就完成了,这是一种非常粗陋的做法,首先会导致应用日志的大量错误信息,而很多时候你都不知道这些错误信息因何发生;再者,反应到用户端将直接导致用户无法获取操作的结果以及失败的原因。 以下 15 条异常处理的原则来自国外的博客:
在网上遇到一个很聊的来的孩子,很真实,想把自己的java面试经验分享给大家,避免大家走弯路,找对方法,拿下9个offer 背景:来自山东的一个小农村里的男生小赵,97年出生,在济南章丘某三流大学本科毕业。专业学的计算机科学与技术,跟许多人一样,在大学也没好好学专业知识,天天打游戏、逃课、上课睡觉、打工挣钱干兼职等等,并没有什么出彩的大学生活,一眨眼就毕业了。
全面的性能调优 编写更好的算法 编写更少的代码 过早优化 过早考虑优化是所有噩梦的根源。应该编写清晰、直接、易读和易理解的代码。 数据库可能是瓶颈 常见的优化 积少成多地改进性能 原则: 1. 借助性能分析来优化代码,注重性能分析中最耗时的操作 2. 新代码比机器配置更可能引入性能问题,机器配置比JVM或操作系统更容易引入性能问题。