- 浏览: 646726 次
- 性别:
- 来自: 北京
最新评论
-
dotjar:
awk -F "/" '{print $3 ...
@Marked-linux命令使用 cut/sort/uniq -
DEMONU:
直接将要删除的key记下来,遍历完了,在删除
@Marked-Java 遍历Map时 删除元素 -
LeeXiao:
感谢分享
@Marked-Java 遍历Map时 删除元素 -
nicegege:
受益匪浅
mysql char varchar -
nicegege:
受益匪浅
@Maked-mysql使用规范
文章列表
ImpalaTest
- 博客分类:
- Java
package com.niewj.demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ImpalaTest {
private static final String SQL_STATEMENT = "SELECT * FROM app.app_shlx_user_report_d ...
/*
* 快速搭建千万级数据库表测试
*/
-- 1.建表
CREATE TABLE `goods` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(10) DEFAULT NULL,
`price` double DEFAULT NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2577925 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT
-- 2.存储过程插入记 ...
1. <mvc:default-servlet-handler/>default-servlet-handler在SpringMVC上下文定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,
它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如发现是静态资源请求,就转由Web服务器默认的Servlet处理; 不是静态请求才由DispatcherServlet继续处理; 而DefaultServletHttpRequestHandler则是调用T ...
1. Java问题:"讲一下JVM的结构。"
2. 网络问题:"TCP/IP的三次握手、四次挥手"
3. "淘宝用户的数据(购物车……)存在那里?怎么满足高并发?"
4. "输入两个整型数组,返回一个数组:两个数组中的公共值。"
5. 考一下你对递归的掌握。写一个函数,输入int型,返回整数逆序后的字符串。如:输入123,返回“321”。 要求必须用递归,不能用全局变量,输入必须是一个参数,必须返回字符串。”
6. 分库分表
7. 1,1,2,3,5,8,13求第30个数是多少
8. 3 ...
秒杀系统架构分析与实战
(反馈非常好的文章,推荐)
来源:陶邦仁
1 秒杀业务分析
正常电子商务流程
(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货
秒杀业务的特性
(1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高;
2 秒杀技术挑战
假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有:
对现有网站业务造成冲击
秒杀活动只是网站营销的一个附加活动,这个活动具有时间短,并发访问量大的特点,如果和网站原有应用部署在一起,必然会对现有业务造 ...
Redis作者谈Redis应用场景
1.取最新N个数据的操作
比如典型的取你网站的最新文章,通过下面方式,
我们可以将最新的5000条评论的ID放在Redis的List集合中,并将超出集合部分从数据库获取
使用LPUSH latest.comments<ID>命令,向list集合中插入数据
插入完成后再用LTRIM latest.comments 0 5000命令使其永远只保存
最近5000个ID
然后我们在客户端获取某一页评论时可以用下面的逻辑(伪代码)
FUNCTION get_latest_comments(start,num_it ...
1. 请求过滤器:
/**
* OncePerRequestFilter保证在任何Servlet容器中都是一个请求只执行一次的过滤器。
*/
public class CorsFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse respon ...
安装
npm install -g pm2
用法
$ npm install pm2 -g # 命令行安装 pm2
$ pm2 start app.js -i 4 # 后台运行pm2,启动4个app.js
# 也可以把'max' 参数传递给 start
# 正确的进程数目依赖于Cpu的核心数目
$ pm2 start app.js --name my-api # 命名进程
$ pm2 list # 显示所有进程状态
$ pm2 moni ...
传统read/write进行网络文件传输过程当中,文件数据实际上经过四次copy操作:
硬盘—>内核buf—>用户buf—>socket相关缓冲区—>协议引擎
而sendfile系统调用减少以上多次copy,提升文件传输性能:
硬盘—>内核buf—>用户buf—>socket相关缓冲区—>协议引擎
1、sendfile系统调用,文件数据被copy至内核缓冲区2、再从内核缓冲区copy至内核中socket相关的缓冲区3、最后再socket相关的缓冲区copy到协议引擎
减少了内核buf到user buf,再从user ...
sql执行顺序:
(7) SELECT
(8) DISTINCT <select_list>
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) HAVING <having_condition ...
volatile和synchronized的区别
volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取; synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住。
volatile仅能使用在变量级别;synchronized则可以使用在变量、方法、和类级别的
volatile仅能实现变量的修改可见性,不能保证原子性;而synchronized则可以保证变量的修改可见性和原子性
volatile不会造成线程的阻塞;synchronized可能会造成线程的阻塞。
volatile标记的变量不会被编译器优化;sy ...
1. RocketMQ
https://github.com/alibaba/RocketMQ/wiki/quick-start
2. RabbitMQ
https://www.rabbitmq.com/getstarted.html
对比:
Kafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache定级项目。Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输。0.8版本开始支持复制,不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的互联网服务的数据收集业 ...
1. 查看centos版本号:
lsb_release -a
2. 查看mysql服务是否开机启动:
http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796873.html
chkconfig --list |grep mysqld
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
chkconfig mysqld on
chkconfig --list|grep mysqld
mysqld 0:o ...
BSON与JSON的区别
BSON是由10gen开发的一个数据格式,目前主要用于MongoDB中,是MongoDB的数据存储格式。BSON基于JSON格式,选择JSON进行改造的原因主要是JSON的通用性及JSON的schemaless的特性。
BSON主要会实现以下三点目标:
1.更快的遍历速度
对JSON格式来说,太大的JSON结构会导致数据遍历非常慢。在JSON中,要跳过一个文档进行数据读取,需要对此文档进行扫描才行,需要进行麻烦的数据结构匹配,比如括号的匹配,而BSON对JSON的一大改进就是,它会将JSON的每一个元素的长度存在元素的头部,这样你只需要读取到元素长度 ...
假如数据库有表emp:
empno name age
001 lucy 22
002 lily null
003 lilei null
004 lucy null
005 pear null
006 pear null
当执行sql:
SELECT empno FROM `emp` where age != 22;
返回的竟然一条都没有;
结论: null值是不参与比较的, age != 22 , 所有null的那些列都被过滤去掉 ...