- 浏览: 21403 次
- 性别:
- 来自: 北京
最新评论
文章列表
最近一直在思考搜索是什么? 可以总结不同的场景搜索的策略不同
场景一: 数据不经常变化 关键词有规律
可以考虑采用缓存进行处理(mc redis ...) 如果数据量大的话需要考虑分布式处理,可能采取的方式hash
场景二:一次请求需要查询多张表
这时候我们需要考虑跨表查询改成单表查询,还要增加上索引的优化,
之前遇到的机票搜索就在应用层面做了优化,一次报价搜索来源不同的代理商报价数据,我们发现用户的搜索只是北京-上海-日期这种格式,所以只要保证数据在一张表就可以了,我们增加了搜索库,保证搜索和代理商后台管理是隔离的,之后采用路由的方式同步到搜 ...
从根本上防止SQL注入,意思是在不改动现有系统任何代码的前提下,防止SQL注入。办法就是 ModSecurity: Open Source Web Application Firewall不过这个方案比较狠,很可能错杀不是攻击的请求,不过对于大多数网站,很难想象用户正常输入会包含一个能够正则匹配SQL语句的请求。
mysql 数据库优化
- 博客分类:
- 数据库
1. 查看mysql(>=5.5)健康指标,我们可以直接通过mysql提供的接口获取相关指标
查看数据库整体的健康指标
show status
查看innodb 存储类型的表相关健康指标
show engine innodb status
如果想更进一步查看健康指标也许需要通过mysql插件mysqlreport来进行查看 详细内容请移步到mysqlreport。
2. 查看慢查询的状态
可以直接通过 explain select * from table_name [any code] 进行查看 也可以通过专业的工 ...
一般Java文件编码格式是UTF-8的。以下以默认GBK改为UTF-8为例。
1.改变整个工作空间的编码格式,这样以后新建的文件也是新设置的编码格式。
eclipse->window->preferences->General->workspaceTypes->Other->UTF-8->OK
汉化版:eclipse->窗口->首选项->常规->工作空间->其它->UTF-8->确定
2.项目范围的设置编码格式
Project->Properties->Genera ...
VMWare10+CentOS 6.5
- 博客分类:
- 操作系统
VMware10.1
下载地址:http://download3.vmware.com/software/wkst/file/VMware-workstation-full-10.0.1-1379776.exe
注册机下载(V10,V10.1版本通用)附件下载 vm10注册机.zip
CentOS 6.5:
下载地址:http://mirrors.163.com/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso
只需要DVD1
VMware10安装CentOS 6.5:
参考:http://jingyan ...
1. java中有几种方法可以实现一个线程? 答:两种方法: 实现Runnable的 run接口或者继承 Thread类 重写run方法2. 如何停止一个正在运行的线程? 答:引入共享变量,通过修改线程的变量值使线程安全停止运行;stop和 interrupt 不安全 3. notify()和notifyAll()有什么区别? 答:notify只是针对对象锁监视的随机的单个唤醒线程 notifyall可以针对对象锁监视的所有线程进行唤醒操作 为什么需要notify?因为对象执行了于wait方法.什么执行wait方法?同步的需要 参考网址:ht ...
今天兴致勃勃登录contos服务器查看应用运行log信息,发现log中频繁出现 InetAddress.getLocalHost() 异常信息如下:
java.net.UnknownHostException: munan: munan: 未知的名称或服务
at java.net.InetAddress.getLocalHost(InetAddress.java:1438)
at weibo4j.http.HttpClient.httpRequest(HttpClient.java:380)
at weibo4j.http.HttpClient.post(HttpCl ...
Hibernate自动建表
- 博客分类:
- 数据库
hibernate的自动建表功能可以给我们提供很大的便利,本人参考网络资料及编码实践整理如下:1:只要在hibernate.cfg.xml添加这句话,就可以自动生成数据表<propertyname="hibernate.hbm2ddl.auto">update</property> update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表;如果表里缺少列,则自动添加列(并且表中原来的数据不会丢失)(注:若表里有多余的列,则不会删除)。若对应类型不一致,则不会修改表的字段的类型,操作(如 ...
tomcat 中java内存大小设置
- 博客分类:
- web服务器配置
windows : set JAVA_OPTS=-Xms256m -Xmx512m
linux:JAVA_OPTS='-Xms256m -Xmx512m'
最近项目开发过程中需要将oralce 11G 数据 导入到oralce 10G中,之前的exp/imp命令的使用会提示版本不兼容问题,后来发现expdp/impdp命令可以解决此问题。
创建一个Directory对象,并授予用户读写权限
create directory MPI_MDB as '/home/oracle/backup';
grant read,write on directory MPI_MDB to username
从oralce 11G导出数据(指定版本)
expdp ihoo/ihoo@orcl schemas=ihoo dumpfi ...
(最新)HttpClient4模拟登录腾讯微博
- 博客分类:
- 网络爬虫
今天在查看网络抓取运行日志时候发现腾讯微博数据获取出现异常,进行跟踪之后发现之前的模拟登陆出现了问题,确切的说是腾讯进行部分代码的调整导致登陆失败。解决思路如下:
1. 查看一下请求地址及参数是否发生变化,如下图:
结论:action、login_sig这两个参数导致登陆失败
2. 分析action、login_sig参数的来源
通过http://jsbeautifier.org/在线格式化工具进行格式化,最终的文件:h_login_11.rar 找到action参数的处理逻辑,仅仅是记录用户键盘行为,不会对登陆有影响,对应就只剩下login_sig这个参数了, ...
jconsole 解决线程假死问题
- 博客分类:
- java基础
最近在做一个基于多线程的网络抓取,运行过程中总是假死,为此我给线程增加了超时安全退出,但是仍旧没有解决这个问题。后来想了一下,应该有相关的JVM问题定位工具,搜索了一下相关内容,发现jconsole可以考虑尝试一下。
1. jconsole 是什么?
从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。
2. jconsole 如何启 ...
//获取请求参数并创建svg文件
FileUtils.writeStringToFile(new File("c://pp//barChart.svg"), request.getParameter("svg"),"utf-8");
//转换文件 svg-to-pdf
SVGConverter c = new SVGConverter();
c.setSources(new String[]{"c://pp//barChart.svg"});
c.setDst(new java.io.File("c:// ...