自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Null

四大皆空

  • 博客(50)
  • 资源 (6)
  • 收藏
  • 关注

原创 lua脚本在redis集群中哈希槽分片问题

上文说到,通过可以操作redis lua脚本来实现时间窗限流,在执行lua脚本的时候,参数中有个keys列表,当lua脚本中如果有操作多个key的情况,就可以传个key列表了。的异常。原因在于redis为了保持事务,同一个lua脚本访问应该访问同一个slot(hash槽),但是redis集群会根据 key 进行 hash 并对 16384 取模,因此如果采用默认hash的话,那么就可能会产生上述的错误。

2024-03-29 17:32:28 487

原创 一个注解搞定redis分布式锁

首先自定义注解:@DistributeLock。

2024-03-29 11:11:04 268

原创 用redis lua脚本实现时间窗分布式限流

分析对zset的操作,有几个步骤,首先,判断zset中符合rangeScore的元素个数是否已经达到阈值,如果未达到阈值,则add元素,并返回true。如果已达到阈值,则直接返回false。微服务分布式部署,既然是分布式限流,首先自然就想到了结合redis的zset数据结构来实现。ARGV[2]: zset score(当前时间戳)ARGV[4]: zset key 过期时间30秒。限制某sql在30秒内最多只能执行3次。ARGV[3]: 30秒前的时间戳。ARGV[5]: 限流阈值。

2024-03-22 18:11:58 478

原创 一个注解解决接口耗时日志的打印

在日常开发中,常常需要统计方法的耗时情况,一般的写法是在进入方法之前,记录一下当前时间戳,在方法最后再用当前时间戳减去进入时候的时间戳就是耗时情况,方法很简单,但不够优雅。这个注解不光可以取出参数中对象中的属性,方法,还可以解析表达式,来自定义日志的内容。接下来我们用一个注解+AOP的方式来实现这个需求。首先,自定义一个注解 @StopWatch。

2024-03-18 15:23:27 497

原创 用JDBC游标的方式导出mysql数据以及springboot打包成exe程序实践

用JDBC实现游标查询,关键代码在于 Statement 的 fetchSize 属性的设置。

2024-03-18 14:45:00 419

原创 大型文件数据读取并持久化到数据库

所以只能按批来读取,一边读一边写,已经持久化的数据就及时释放掉,避免一直占用内存。我拿到文件后最开始直接用navicat工具直接导入,但发现效率极慢,跑了一分多钟,才导进去10W+数据进去,算下来要跑完至少需要20多个小时,时间不允许。LinkedBlockingQueue 的 poll 方法,可以设置超时时间,在等待超时后如果在队列中还是没有拿到数据,就返回null。LinkedBlockingQueue 的 put 方法,如果队列已满,会阻塞等待,直到队列中腾出空位。看来只能自己写代码来提升效率了。

2024-03-06 17:05:14 364

原创 echats 时间直方图示例

把查询结果copy出来,粘贴到 https://echarts.apache.org/zh/spreadsheet.html,转换成二维数组。某订单有N个定时任务,每个任务的执行时间已经确定,希望直观的查看该订单的任务执行趋势。// 初始数据, 数据库中统计结果, key为时间戳, value为个数。// 第i分钟没有值,则value=0。// 创建 ECharts 实例。// map集合的keyset。// 最小key(起始时间戳)// 最大key(结束时间戳)// 以分钟(60s)为步长。

2024-02-19 11:48:44 996

原创 揭秘Linux权限系统:数字背后的二进制逻辑与实际应用

在linux系统中,每个文件或目录有三组权限:所有者权限、组权限、其他用户权限。分别用 r(读)、w(写)、x(执行) 来表示,每个权限有一个对应的数字值:r(4)、w(2)、x(1)。可以通过将这些数字相加得到权限值,例如,读写权限可以表示为 6(4+2)。而7,5,5 每个数字分别对应这三组权限,7表示所有者具备和权限,中间的5表示组具备和权限,最后一个5表示其它用户具备和权限。用10进制的角度来看,这几个数字的规律分别是2⁰=1,2¹=2,2²=4。

2024-01-26 10:42:43 951

原创 centos7+apache+svn配置

阅读帮助 命令提示符 [root@server-002 ~]# 表示当前服务root用户执行的命令 [svn@server-002 ~]$ 表示普通用户svn执行的命令 [root@localhost ~]# 表示其它服务器的root用户系统配置CPU: 2核 内存: 8G 硬盘: 1T 服务器OS: CentOS7 服务器IP: 192.168.1.2 ...

2018-03-21 17:06:48 1354

原创 linux defunct僵尸进程

事件起因今天使用elasticsearch发现一个node节点挂掉了,然后查看进程发现有几个defunct的进程。 简单的了解了一下,原来这是僵尸进程。解决过程看看还有没有其它的僵尸进程:ps -A|grep defunct 恩,看来就只有这两个,那么该怎么杀死他们呢?如果你使用命令 kill -9 1944 尝试杀死ID为1944的进程,可能会没效果。要想成功杀死该进程,需要对

2017-05-19 15:16:37 1138 1

原创 修改echarts源码实现鼠标点击高亮效果

我们知道echarts的关系图中默认高亮效果是鼠标mouseover和mouseout事件触发的。鼠标移开高亮效果就消失了,但有时候需求需要点击节点后,继续保持高亮效果该怎么办呢。下面分享一下我的解决办法,以供参考。 这是echarts高亮源码:el.off('mouseover', el.__focusNodeAdjacency);el.off('mouseout', el.__unfocus

2017-05-11 09:23:13 6542 4

转载 JS生成渐变颜色

最近在使用百度的echarts插件做一个图表,分享一下做图的心得。 这是echarts默认的颜色: echarts默认的颜色列表只有10个颜色。 既然如此,那么我们修改一下这个color列表的颜色就好了。先上效果图 /*// startColor:开始颜色hex// endColor:结束颜色hex// step:几个阶级(几步)*/function gradientCol

2017-05-10 17:27:32 7294

原创 HTML5-web worker

chrome浏览器执行web worker的时候报错: Uncaught DOMException: Failed to construct ‘Worker’: Script at ‘file:///F:/code/workspace/esweb/src/main/webapp/resources/js/addName.js’ cannot be accessed from origin ‘nu

2017-04-24 21:14:06 3244

原创 关于elasticsearch的问题解决记录

最近有这样一个需求,需要修改一个字段的mapping和要添加一个字段,新增字段和老的字段value要一样,也就是要复制一个字段的值到这个新增字段上来,保持两个内容一致,新增字段做不分词处理,用来精确匹配搜索。但elasticsearch的mapping是不能修改的,所以只好新建一个索引,重新定义mapping之后再导入数据。数据量比较大,有1500W+数据。 之前有人写过一个导入数据的程序。代码如

2017-04-21 21:52:00 5352 1

转载 安装scp命令

今天用scp命令在服务器之间复制文件,结果提示: -bash: scp: command not found想当然用yum install scp命令安装,结果提示: No package scp available.解决办法: 由上可见提供的软件包一定不是叫scp,一般情况下服务器都有scp ,于是找一台以前有scp 的机器查看一下 此命令由哪个软件包提供 [root@localh

2017-04-21 09:44:12 2981

原创 Linux(CentOS6.X)安装mysql6.5记录

首先执行rpm -qa|grep -i mysql检查一下是否已经安装过mysql mysql-libs-5.1.73-5.el6_6.x86_64可见已经安装了库文件,应该先卸载,不然会出现覆盖错误。注意卸载时要使用–nodeps选项忽略依赖关系卸载老版本的库文件:rpm -e mysql-libs-5.1.73-5.el6_6.x86_64 --nodeps。使用wget方式直接下载rpm

2017-04-21 09:38:24 5960 1

原创 【VMware】完整克隆虚拟机后连不上网解决方案

记录一下完整克隆linux(CentOS6.X)虚拟机后连不上网的问题解决方案。背景:使用static的方式手动设置了静态IP,完整克隆之后却不能连接到虚拟机了。产生这个问题的原因是克隆之后,新的克隆副本的网卡信息被修改了,如图: 这是源虚拟主机网卡信息: 下面克隆出来的虚拟机网卡信息: 可以看出克隆的虚拟机eth0和源虚拟机mac地址冲突了,而且还多出了eth1和eth2两张网卡。步

2017-04-17 01:06:49 4864 2

原创 Elasticsearch入门笔记

ESelasticsearch基本认识什么是Elasticsearch名词解释安装ES集群准备工作linux下编译安装curl安装head插件目录结构说明探索你的ESREST接口什么是REST创建一个集群创建索引删除索引range范围查询ES(elasticsearch)基本认识什么是Elasticsearch? Elasticsearch是一个高度可扩展的开源全文

2017-04-12 17:29:34 806

转载 我的收藏

Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)详细图解mongodb(win7x64 3.4.1版本)下载、安装、配置与使用

2017-04-01 16:27:51 326

原创 tomcat相关问题

问题一:修改tomcat端口为80,启动报错 原因:linux系统1024以下的端口只能由root用户使用,普通权限的tomcat服使用80端口启动时会报没有权限。解决办法: 1. 更改启动用户为root,不建议。 2. 另一种做法是做端口重定向,将发向80的请求改到8080端口处理。root用户执行下面的命令: iptables -t nat -A PREROUTING -p tcp -m

2017-03-11 22:15:21 324

原创 JAVA碎片

全局变量和成员变量需要注意的区别:全局变量可以不赋初值,使用时会自动给它一个默认值。 成员变量使用之前必须要赋值,否则编译报错。静态变量:大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。然而在某些时候,我们更希望该类所有的对象共享同一个成员。此时就是 static 大显身手的时候了!!Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所

2016-08-21 21:12:02 847

原创 CentOS6.7安装Oracle 11g2R傻瓜图文教程

环境准备:CentOS6.7_x64_minimal_desktop的虚拟机一台(安装oracle需要图形界面,所以选择安装minimal_desktop版本的)。 xftp5。 linux.x64_11gR2_database_1of2.zip。 linux.x64_11gR2_database_2of2.zip。为了方便在虚拟机中复制粘贴,先安装WMware Tools,具体方法请看上一篇

2016-05-29 22:00:35 14026 5

原创 Linux安装VMware Tools教程

启动需要安装VMware Tools的主机。点击菜单栏–>虚拟机–>安装VMware Tools。 进入linux主机,打开终端。进入/media/VMware Tools目录。 可以看到这个目录下有一个tar.gz文件,先把它复制到/tmp目录下,然后切换到/tmp目录再执行解压。解压完成之后就看到目录下面又多了个vmware-tools-distrib。 6.进入vmware-

2016-05-29 14:12:09 3939

原创 Linux安装JDK

安装去oracle官网下载所需的JDK 如果linux服务器可以连接互联网,那么直接在连接上右键点击复制连接,这里以下载rmp包为例。在终端按如下步骤执行命令:进入/opt目录,我打算把JDK安装包下载到这个目录下来。#cd /opt运行wget,下载JDK,一般的直接wget后面直接跟链接地址就能下载了,但JDK直接在页面下载时需要click接受oraclelicence。所以我们需要在wge

2016-05-24 22:15:48 476

原创 记录一次使用DDNS通过域名访问服务器的过程

背景:因为笔记本配置较低,如果在本本上安装一个oracle的话太影响计算机性能,但是又想在自己能带着走的笔记本上随时可以编程。所以,我在自己家里配置较高的台式机上使用vmware安装了两台虚拟机服务器,分别是windows server 2012的系统和CentOS6的系统,在windows server 2012上安装了oracle数据库,在CentOS上安装了tomcat,作为web服务器。

2016-05-06 17:30:48 12279 2

原创 Git笔记

安装Git略配置Git$ git config --global user.name "Your Name"$ git config --global user.email "[email protected]"git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。初始化Git首先,在本

2016-04-01 09:40:31 381

原创 python笔记

字符编码运行python时,如果遇到类似如下报错信息就是代码中有中文造成的编码问题。SyntaxError: Non-ASCII character '\xe8' in file hello_world.py on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details解决办法是在文

2016-03-31 16:22:06 296

转载 Linux手册

Red Hat查找命令文件查找命令locate和find区别:locate是搜索/var/lib/mlocate数据库,优点速度快;缺点是不实时更新,默认是一天更新一次,如果要搜索最新的文件,需要配合updatedb命令强制更新。find 优点是功能强大,缺点是速度慢。locate格式: [userName@pcName ~]$ locate fileName受/etc/updatedb.conf配

2016-03-04 17:40:02 290

转载 手动将JAR 包添加到 Maven 的本地仓库

Maven 确确实实是个好东西,用来管理项目显得很方便,但是如果是通过 Maven 来远程下载 JAR 包的话,有时候受带宽限制,下载速度会非常慢。那么解决办法就是手动来下载了,因为用迅雷一类的工具来下载会快很多。但是手动下载的话就会带来一个问题,就是,怎么样手动将下载下来的 JAR 包添加到 Maven 的本地仓库。首先, 推荐几个好的 Maven 常用仓库网址:http://mvnreposi

2016-02-25 16:54:11 487

原创 在centos上安装VSFTPD

安装VSFTPD服务器chkconfig --list | grep vsftpd –>检查是否已经安装vsftpdyum -y install vsftpd –>安装vsftpdtouch /var/log/vsftpd.log –>创建日志文件chkconfig vsftpd on –>开启自动启动vim /etc/vsftpd/vsftpd.conf –>配置vsft

2016-02-25 15:26:24 412

原创 读取配置文件的若干种方法总结

import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class LoadConfigFile { private static String ipString; private static String portstring; private sta

2016-02-25 14:37:36 731

原创 java swing中两种添加背景图片的方法

在java swing中为容器添加背景图片有两种方法。 一种利用JPanel,另一种利用JLabel。import java.awt.Image;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JPanel;/** * 直接设置JPanle的背景图片 * * @author hgg

2016-02-25 14:36:03 16474 3

原创 windows 常见问题解决办法

远程桌面无法连接 出现这种情况的解决办法是在DOS命令窗口中输入如下命令cmd> mstsc /v:192.168.0.101:3389 /admin标题待定标题待定标题待定

2015-12-23 13:57:57 568

原创 ORACLE笔记

ORACLEORACLE创建表空间创建用户创建DIRECTORY创建DB_LINK备份expexpdp恢复impimpdp常用DDL语句建表字段类型约束常用DML语句增删查改DBA管理同义词创建同义词删除同义词查看同义词创建表空间--DROP TABLESPACE ptspace INCLUDING CONTENTS DATAFILES;SQL> C

2015-11-18 15:19:46 1134

原创 Sublime Text正确的打开方式

安装package control插件安装完sublime 之后第一步就是先安装package control插件,去这个网址https://packagecontrol.io/installation找到自己对应版本的代码复制–>打开sublime 按 Ctrl+~ 调出控制台粘贴进去回车,等待安装完毕就行了。 安装完成之后我们就可以按Ctrl+shift+p呼出Anything panel面板

2015-10-28 21:47:18 6360 1

原创 PLSQL Developer

PLSQL Developer正确使用方式在开发中,免不了使用到数据库,这里我们介绍一个oracle数据库可视化工具plsql developer一般我们在自己的开发电脑上不会安装oracle服务,而是连接远程服务器,目前服务器又基本都是64位的,如果用PLSQL Developer直接连接64位的数据库,会抛一个异常,

2015-10-28 20:59:41 664

原创 用spring mvc+mybatis+maven搭建项目骨架

前情提要: IDE:eclipse 4.5 MAVEN:3.0 OS:windows tomcat:7.0 JDK:1.7进入正题: 第一步:打开eclipse,创建maven web工程:初始的POM文件如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS

2015-10-23 16:40:48 3575

原创 eclipse的正确使用方式

前情提要: Eclipse版本: Eclipse Java EE IDE for Web Developers. Version: Mars.1 Release (4.5.1). Build id: 20150924-1200自定义new菜单选项有时候默认的new选项里面可能没有class,package等等选项,就像下面这样: 如果要新建一个class,只能去点最下面的Other再

2015-10-18 21:49:11 4808

原创 基于bootstrap的web登陆实例

前情提要 之前已经搭好的springMVC+myBatis项目骨架,详情请看–>传送门。获取bootstrap方法一使用 Bootstrap 中文网提供的免费 CDN 加速服务(同时支持 http 和 https 协议) 将下面的代码copy到自己的JSP页面中即可。<!-- 新 Bootstrap 核心 CSS 文件 --><link rel="stylesheet" href="//cdn

2015-10-18 03:37:32 17492 1

原创 eclipse MAVEN插件正确使用方式。

首先贴出我的MAVEN的setting.xml文件,嗯,我也怕忘了下次再怎么去配置。<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

2015-10-17 18:25:47 5509

导出mysql表数据到本地CSV文件

自定义数据源,自定义导出SQL,一键导出对应SQL的所有数据到本地CSV文件。

2024-03-22

PLSQL Developer11绿色版

绿色免安装版,不需要安装oracle客户端,不需要配置oracle环境变量,直接解压运行PLSQL.exe就可以使用。

2016-05-30

oracle11g客户端

plsqldeveloper连接64位的oracle服务器所需要的客户端,解压后设置环境变量ORACLE_HOME=解压目录即可。

2015-10-28

OSXmavericksUXPack3.1windows仿苹果美化

可以把windows系统变成苹果界面,很漂亮哦!

2014-08-28

UE21.20.1009附在线注册

UEv21.20.1009版本,内附注册机,可联网注册.本人亲测可用!

2014-08-27

空空如也

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

TA关注的人

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