Skip to content

Instantly share code, notes, and snippets.

View yangl's full-sized avatar
🎯
Focusing

YANGLiiN yangl

🎯
Focusing
View GitHub Profile
@yangl
yangl / NIOSelector.java
Created April 9, 2014 08:00
Java NIO系列教程(六) Selector http://ifeve.com/selectors/
Selector selector = Selector.open();
channel.configureBlocking(false);
SelectionKey key = channel.register(selector, SelectionKey.OP_READ);
while(true) {
int readyChannels = selector.select();
if(readyChannels == 0) continue;
Set selectedKeys = selector.selectedKeys();
Iterator keyIterator = selectedKeys.iterator();
while(keyIterator.hasNext()) {
SelectionKey key = keyIterator.next();
@yangl
yangl / JedisTemplate.java
Last active August 29, 2015 14:00
JedisTemplate 支持数据分片,实现ShardedJedisPool.java所有方法
package com.jd.promotion.common;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import redis.clients.jedis.*;
import redis.clients.jedis.exceptions.JedisConnectionException;
import redis.clients.jedis.exceptions.JedisException;
import java.util.List;
import java.util.Map;
@yangl
yangl / laydate_demo.html
Created June 24, 2014 02:33
laydate 日期控件,注意要放到input的下边,加载顺序
<tr>
<th>
<span class="requiredField">*</span>开始时间:
</th>
<td>
<input type="text" id="startTime" name="startTime" class="laydate-icon"
value="$!dateTool.format("yyyy-MM-dd HH:mm:ss",$!act.startTime)"
/>
</td>
</tr>
@yangl
yangl / FSTSerializationUtils.java
Last active August 29, 2015 14:07
FST序列化反序列化工具。拿当前项目订单数据序列化、反序列化100万次和JDK序列化工具比较耗时相差不到一个数据级:---SerializationUtils.serialize---193565 ---FSTSerializationUtils.serialize---33351
package com.iuni.order.common.mapper;
import org.nustaq.serialization.FSTObjectInput;
import org.nustaq.serialization.FSTObjectOutput;
import java.io.*;
// 3.0可用下边这个简单的接口了,FST并不支持添加删除字段!
// FSTCoder fst = new DefaultCoder();
@yangl
yangl / logcron.sh
Created September 22, 2015 11:39
定时切割删除日志
#!/bin/sh
log_dir="/data/metricslog"
date_dir=`date +%Y-%m-%d --date='yesterday'`
cd $log_dir
while read line
do
mv ./nginx/$line/metrics.access.log ./nginx/$line/metrics.access.log-$date_dir
@yangl
yangl / cloudera安装文档.txt
Created April 1, 2016 04:26
cloudera安装文档
1.各个节点安装必需的包
yum install -y openssh openssh-clients vim libxslt libaio
2.配置ssh无密码认证(个人认为可以忽略的步骤)
(1)修改hosts.allow 将新的IP都加进去
(2)修改ssh的配置文件 允许root登录 ,再重启ssh服务
(3)在一台机器上ssh所有机器,获取所有的机器的公钥,再生成自己的ssh-key,无密码登录自己,把.ssh目录打包,传到每个机器上
3.修改hosts文件
@yangl
yangl / tomcat重启 restartall.sh
Last active May 22, 2016 10:20
tomcat配置相关 ./catalina.sh stop 0 -force是先通过调用Tomcat的shutdown端口关闭,然后再kill进程。
for i in {1..7};do
cd server$i
./stop.sh && ./start.sh
cd ../
done
@yangl
yangl / mysql.sh
Last active June 1, 2016 09:42
查询SQL并输出,动态拼表名
dd=`date -d yesterday "+%Y%m%d"`
sql="select count(1) c, status from t_customgift_${dd} where if_outapppush=1 group by status;"
mysql -h10.10.130.109 -ugrowth_log -pgrowth_uxin_com -Dgrowth -P3307 -e "${sql}"
@yangl
yangl / Apns.java
Last active July 3, 2016 03:30
公司apns接口私有协议java实现。Base64算法apache下的commons-codec实现有少许问题,最好使用JDK8原生的实现!
private static final String apns(long uid, int type, String alert, long sn) {
String playload = APNS.newPayload().alertBody(alert).customField("type", type).build();
int length = 13 + 9 + playload.getBytes(CharsetUtil.UTF_8).length;
ByteBuf bf = Unpooled.buffer(length);
bf.writeInt(length)
.writeByte(1)
.writeLong(sn)
.writeLong(uid)
package com.jd.market.easypayservice.common.util.mapper;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
import org.objenesis.strategy.StdInstantiatorStrategy;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;