- 博客(27)
- 资源 (5)
- 收藏
- 关注
原创 SM2加密解决java与iOS端加解密不配套问题
SM2加密解决java与iOS端加解密不配套问题问题描述问题判定代码声明问题描述使用java开发的SM2加解密,由java层生成SM2公私钥,iOS、Android(因和java层一致,暂忽略)层使用公钥做加密,java层做解密。java生成的公私钥在iOS和java层单独做加解密均可用。iOS层加密结果java层无法解密问题判定SM2非对称加密的结果由C1,C2,C3三部分组成。其中C1是生成随机数的计算出的椭圆曲线点,C2是密文数据,C3是SM3的摘要值。最开始的国密标准的结果是按C1C
2021-01-28 10:27:52
4862
3
原创 一个兼容性强的错误日志预警机制
需求:错误日志报警,如果5分钟内出现相同错误已报警,则不继续报警。 实现:为不影响之前系统其他功能,在nginx层面用luajit提取日志,并每分钟生成一个日志。用脚本处理后删除这一分钟的日志。(注:与原先的access.log互不影响) 1. shell脚本:(目前按每分钟进行错误统计报警)#错误次数,超出报警limit_time=4#错误发送时间间隔秒数
2017-08-09 17:26:44
879
1
原创 日志分割
没错,这是一个linux日志分割的脚本。留作备份。cut_log.sh 内容如下: log_dir=/home/cheyunlong/ log_file=${log_dir}log #需要切割的日志文件绝对路径 d=`date +%Y-%m-%d` #按天分割 此处d表示今天的字符串 y=`date -d yesterday +%Y`
2017-05-05 13:52:42
499
原创 mybatis分表策略shard
分表,通常在数据量大的情况下进行,当然应该先对项目的数据量进行数量级的预估,以根据不同的需求进行采用不同的分表策略。(shard在mybatis中的配置就不多聊了,直接搜"mybatis分表"会有很多资料,大多类似)shard原理,相当于一个过滤器,在执行sql语句之前对表名进行处理。 shard_config.xml的配置: <!DOCTYPE shardingConfig
2017-04-11 17:48:30
2800
原创 sql优化
使用数据库,mysql,以下时从sql语句的角度进行查询优化。 1、 where A="abc" ,group by A ,order by A A字段如为字符串类型,务必建索引 2、 (1) 日期类型 用int代替,以方便查找,精确到毫秒的整型 。 (2) char类型多用varchar代替。 3、 如int类型,像 gender(只有男、女
2017-03-14 16:26:36
244
转载 mysql千万级数据库插入速度和读取速度的调整记录
一般情况下mysql上百万数据读取和插入更新是没什么问题了,但到了上千万级就会出现很慢,下面我们来看mysql千万级数据库插入速度和读取速度的调整记录吧。(1)提高数据库插入性能中心思想:尽量将数据一次性写入到Data File和减少数据库的checkpoint 操作。这次修改了下面四个配置项: 1)将 innodb_flush_log_at_trx_commit
2017-03-03 10:57:04
436
原创 【python处理】把数据库中model_id相同的语音文件移动到名字为model_id的文件中
写得第一个python小程序,感觉还挺方便,话不多说,上代码。 需求: 数据库voice_record中字段model_id相同的语音文件记录会用于同一个建模,为了方便处理,需要把model_id相同的语音文件放在一个文件夹中以方便处理,文件夹名为model_id。 解决步骤: 1. 从数据库中把model_id和url这两
2017-01-18 14:31:22
749
1
原创 装饰者模式
《Head First Design Patterns》装饰者模式学习练习:装饰者模式我们常见的Demo:文件读写io时候,会有InputStream,FileInputStreat,BufferedInputStream的使用。常见的FileInputStream fileInputStream=new FileInputStream(string);
2016-12-21 17:15:08
400
原创 观察者模式
《Head First Design Patterns》观察者模式学习练习:观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,他的所有观察者都会收到通知并自动更新。 首先,定义观察者模式:主题+观察者 = 观察者模式 以客户和客服人员为例,当有客户咨询时,需要通知每个客服人员。其中,Subject为主题接口,Customer为顾客信息,CustomData为主题接口实
2016-12-20 17:08:25
322
1
原创 策略模式
《Head First Design Patterns》策略模式学习练习:没有采用书中给出的demo,以我们常见的“字符串加密解密”实体类为例。选择理由:加密解密方式有很多种,像MD5加密,AES加密。而这些在后期可能会因为种种需求而进行调整或者切换。采用策略模式,可以使这些变化变得可控,而不会影响之前的代码。(具体代码附在最后)大概设计: 接口Processor,接口具体实现AESP
2016-12-19 17:23:22
345
原创 java代码查看当前系统环境
查看代码:public class App { public static void main( String[] args ) { System.getProperties().list(System.out); }}输出为:
2016-09-05 18:00:27
1455
原创 Java微信开发昵称表情符过滤
1. 去掉表情符在不严格的情况下,直接replacenickname.replaceAll("[\ue000-\uefff]", "");2. 入库之前encode,出库时再decode
2016-07-19 16:31:19
6879
1
原创 搜集的一些mysql数据库操作,建表之类的就不写啦
启动MySQL服务:service mysqld start停止mysql服务:service mysqld stopMySQL服务重启:service mysqld restart创建数据库:create database name default character set utf8;导入数据库mysql -u root -p 数据库名
2016-07-19 16:13:14
570
原创 git命令行pull,push避免重复输入用户名密码
相信大家一定遇到过git和开发工具结合不是很好的情况,pull不下来,push不上去。But we are coder rather than coolie. (Just be a Joke!) 这时,git命令行就因其很好的容错提交方便了我们的开发。以下是命令行经常遇到的一问题。 git避免重复输入用户名密码。1、在git bash命令行中输入 echo $HOME 查
2016-07-13 17:21:58
9542
1
原创 linux下创建定时任务 执行删除某文件夹下所有
1. 键入 crontab -e 编辑crontab服务文件 文件内容添加:0 0 * * * /bin/sh /usr/local/tomcat/apache-tomcat-6.0.45/webapps/deleteWechatVoice.sh0 0 * * * 为定时时间 /bin/sh为执行命令 /usr/local/tomcat/apache-tom
2016-06-15 17:24:44
7929
1
原创 SQL中-1,1,2,3四个状态排序为 1,2,3,-1
首先,这个故事从一次项目维护讲起,因之前有很大一批数据显示状态为 失败,即-1。经理觉着不好看,影响客户对系统的第一印象。于是希望把状态为 成功的数据的提前,即1。而2,3在数据库中则分别代表正在建档,语音不够提示。那么问题来了,之前的数据是按照录入时间进行排序的,即createDate。首先声明一下,我很懒,所以希望能在不改变太多SQL的情况下去解决这个问题。经过大概一个小时的头脑
2016-05-31 14:50:10
4651
2
原创 linux上tomcat的安装配置(多个tomcat)
首先,conf/server.xml里边的配置:这三个地方的端口号需要进行修改,因为考虑到多个tomcat,避免端口冲突。 URIEncoding="UTF-8"acceptCount="5000"connectionTimeout="20000"redirectPort="8443" /> 这儿需要开启access
2015-12-25 11:00:26
525
2
原创 nginx做负载均衡配置
这里只写一下主要配置,至于其他的开启日志,设置权重之类的有兴趣的话可以自行脑补。 以下配置,监听本机的80端口,为www.baidu.com这个域名提供服务。效果:来自www.baidu.com的请求,平均地转发到 192.16.0.1:80, 127.0.0.1:8080 两个服务上。(nginx.conf)另外:淘宝tengine的配置和这个基本一样
2015-12-25 10:48:04
345
原创 事务的隔离级别
首先用图来分别说明事务的四个隔离级别以及分别解决掉的问题: 现在分别举例区别: 读未提交:曹阳阳问戴林桐借了500块钱让打到银行卡上,但是曹阳阳去查账的时候发现银行卡里多了5000块钱,高兴的不要不要的,准备约公安局的同事妹子出去嗨。然后这个时候,戴林桐也发现了这个问题,于是迅速rollback,曹阳阳和妹子嗨完之后去结账的时候才发现,原
2015-11-23 14:31:15
398
原创 有10,000个网页,其中包含有电话号码,现在需要将电话号码抽取出来并去重,应该如何设计,使用哪些技术。
对于这个问题,首先我们先把这10000个网页放到一个文件夹下:1.打开文件夹,遍历html文件2.在每个html文件中的操作为:用正则表达式读取电话号码并写入list3.遍历结束关闭文件夹,接下来进行去重4.利用set的无序且无重复数据的性质去重
2015-11-12 17:30:48
1497
原创 触发器和存储过程
触发器是一种特殊的存储过程。单从使用上来区别的话,触发器不用exec来触发,而是通过一些增删改等操作来触发。存储过程:if (object_id('proc_getStudentRecord', 'P') is not null) --判断存储过程是否存在 drop proc proc_getStudentRecordgocreate proc proc_getStudentRe
2015-11-12 15:50:03
357
原创 java 中 如何让一个方法内最多只能指定数量线程访问
//n为指定线程数 public void fun(Thread t) { SubThread sc = new SubThread(); synchronized (SubThread.class) { //获取线程个数 int count = SubThread.getThreadCounts();
2015-11-11 18:20:02
1476
原创 SQLServer邮件异常监控
近来公司维护人员离职,交接时出于好奇问他学了一下SQLServer的一些东西,邮件异常监控应该是经常会用到的一部分,话不多说,让我们进入正题。首先,我们需要“配置数据库邮件”步骤如下:如新增配置选择第一项,修改配置选择第二项,点击下一步。配置完成,点击确定,进入以下页面:下一步:然后一直下一步,直至完成。接下来,测试是否配置成功。
2015-11-03 11:18:31
695
原创 读取日志文件进行用户数据进库不完整补漏
故事的起因是这样的,因上线工作量比较大,测试小y希望晚上的上线可以一部分提前中午上线。但是不料,中午上线不到一个小时的时间,用户注册数据进去了200+条,而上线期间程序出了问题,只有部分用户信息入库,也就是client表信息完整,可是其他附属表信息缺失。不过好在,程序的日志里对用户传入的信息打了日志,于是我们为了避免这200+条用户投诉,进行了如下操作: 1.从
2015-10-20 12:24:39
730
10
原创 java 设计模式学习解读(一)
罗列一下21种设计模式,按照类别可分为三大类。1.创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。2.结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。3.行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模 式、中介
2015-09-23 14:47:18
586
6
原创 介绍一个轮播插件,适配ie6-ie11,ff,chrome,opera,360,搜狗
使用介绍: http://www.lanrentuku.com/down/js/jiaodiantu-794/index.html 找不到js插件可以到 http://download.csdn.net/detail/cheyunlong/8768155 下载
2015-06-03 15:44:19
769
1
适配ie6-ie11,ff,chrome,opera,360,搜狗的轮播插件
2015-06-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人