Skip to content

Instantly share code, notes, and snippets.

Memcached vs Redis

####安装 Memcached需要先安装libevent库,然后获取源码编译安装。
Redis编译安装即可 ####配置 Memcached配置详解 Redis配置详解 ####使用 Memcached启动命令:memcached -d -m 内存大小(M) -u 运行用) -p 端口号 -c 最大并发连接数 -P /tmp/memcached.pid

读书分享

《文明之光》

笛卡尔将人的人知分为三类:

  • 天生的

  • 后天学习的

  • 自己创造的


研究问题的方法分四个步骤:

MySQL账号认证

@(mysql) ####查询语句处理流程 MySQL一条查询语句的处理是:【语句合法性检查】——【语义检查】——【获取对象解析锁】——【数据访问权限的核对】——【查询优化】——【语句执行】,这次主要介绍一下【数据访问权限的核对】中的“账号认证”。
用户账号是由user(用户名)和host(客户端主机)共同组成的,其是通过默认的mysql数据库中的user表来定义的。其中Host、User、Password三个字段的信息作为接入连接的认证参考。可以通过SHOW CREATE TABLE user \G命令来查看user表的内部结构。
User是连接登录使用的用户名;Host是客户端的主机名称或者是IP地址;Password是提供给服务器端登录认证的密码。三个字段都不得为NULL,默认会将他们都设置为空的字符串,也就是说User可以为匿名用户,

解决下载文件名乱码问题

在做文件下载中,发现只要文件中含有中文,就会乱码,即使设置了以下内容,也会出现此情况,

response.setContentType("application/octet-stream; charset=utf-8");

解决此问题的方法是设置响应头,将文件名字符串按ISO8859-1进行编码,代码如下:

response.setHeader("Content-Disposition", "attachment; filename=" + new String(fileName.getBytes("UTF-8"),"ISO8859-1"));

JS数组往后台传参问题

@(Spring)[javascript]

问题

在项目开发中,要将一个数组数据,通过js ajax 传到后台,例如:js代码:

var arr = [];
arr.push({
	  “key”:”a”,

“value”: “b”

JS处理HTML中属性值带双引号的问题

@(Javascript)[转义]

问题

在项目开发中需要从数据库读取数据,然后通过js将数据绑定到一个标签的属性中。例如:
数据库数据: [{“minCount”: 1, “maxCount”: 100,”discount”: 9}]

我定义一个变量,将上面的数据赋值给它:var rule = [{“minCount”: 1, “maxCount”: 100,”discount”: 9}] 在JS中 我将上面的数据添加到一个标签的属性值中:

shiro与freemarker标签集成

@(Xcaspar)[shiro|freemarker]
JSP页面中调用shiro标签十分方面,只需要导入: <%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
但是和freemarker联合使用,需要做一下调整: 编写一个类,继承org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer此类,重写此类的afterPropertiesSet()方法,用com.jagregory.shiro.freemarker.ShiroTags替换原有shiro标签,实例如下:

Python对时间日期的格式化

@(Python)[日期]
Python对时间的处理一般用到time和datetime两个模块,Python将字符串转为日期型的函数为:datetime.datetime.strptime(),对日期进行格式化的函数为datetime.datetime.strftime(); 在举例之前先熟悉一下python中时间日期格式化符号:

  • %y 两位数的年份表示(00-99)
  • %Y 四位数的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月内中的一天(0-31)

Nginx负载均衡机制

@(服务监控)[nginx]

nginx的upstream目前支持以下几种方式的分配 - 轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

  • weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。好的服务器weight高些,差的服务器weight低些。

Nutch介绍

@(Xcaspar)[nutch]

介绍

Nutch是一个爬虫和检索于一体的一个可扩展、高性能的框架。目前有两种版本:最新的分别是v1.8和v2.2.1,两者的区别是底层存储不同,1.X版本基于Hadoop(目前1.2.0版本)架构的,底层存储使用HDFS文件系统。而2.x采用Apache的Apache Gora ORM框架进行存储访问,支持HBase、MySQL等。 两者都有个共同点:必须自己编译源码文件。
说到编译,Nutch是Apache的一个项目,所以项目的编译也是采用自己的ant进行build,jar包管理使用ivy。项目编译还算简单,大体步骤如下:

  • 由于下载的包中缺少代码质量检查的sonar包,但是build.xml文件涉及到,所以,你要自己下载sonar-ant-task jar包,然后更改build.xml中涉及到sonar task的classpath,将地址指向包的位置,比如:
  • 然后ant,此阶段所需时间较长。
  • build之后,默认会有个runtime文件夹,里面包含deploy和local文件夹,分别是部署和本地运行nutch和crawl文件以及相应的配置文件。