redis编译笔记

mkdir -p /home/download
cd /home/download
# 下载redis安装包
wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz
# 解压
tar xvf redis-2.4.17.tar.gz
# 编译
make PREFIX=/usr/local/redis USE_TCMALLOC=yes install
# 创建目录
mkdir -p /usr/local/redis/etc
mkdir -p /usr/local/redis/run
mkdir -p /usr/local/redis/data/6379
mkdir -p /usr/local/redis/log
# 安装配置
cp /home/download/redis-2.4.17/redis.conf /usr/local/redis/etc/redis.conf
cp /usr/local/redis/etc/redis.conf /usr/local/redis/etc/redis_6379.conf

# 创建服务脚本
cat>/etc/init.d/redis
———————————————————————————–

#!/bin/sh
PATH="/usr/local/redis/bin:$PATH"
EXEC="/usr/local/redis/bin/redis-server"
CLIEXEC="/usr/local/redis/bin/redis-cli"
PIDFILE="/usr/local/redis/run/redis_6379.pid"
CONF="/usr/local/redis/etc/redis_6379.conf"
PORT="6379"

case "$1" in
    start)
        if [ -f $$PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed."
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running."
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $PORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped."
        fi
        ;;
    restart)
        $0 stop && $0 start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}" >&2
        exit 1
        ;;
esac

———————————————————————————–
# 对服务脚本授权
chown +x /etc/init.d/redis

使用javascript生成PDF的类库 – jsPDF


曾经生成PDF都是服务器端代码的专利,在今天的这篇文章中,我们将介绍一个javascript类库 – jsPDF,使用它能够帮助你使用前端脚本生成PDF文件,是不是很棒,试试吧!
jsPDF支持不同类型的PDF文件格式,包括:文本,数字,图形,图片,同时你可以自由的编辑标题或者其它类型元素。
支持互动的内容制作,例如,你可以输入文字或者数字,然后jsPDF帮助生成最后的PDF内容。
支持现代浏览器,如果是老式浏览器的话,可以很好的使用flash来实现兼容。不过貌似支持Firefox不是很好,如果要查看演示,使用Chrome吧!
类库依赖:无
网站地址:http://jspdf.com/

HTML5的hidden属性

我们已经知道了很多HTML5新增的属性,比如placeholder、download、autofocus等,还有个新的可能会常用的属性hidden,也是蛮好用的,这里简单介绍下~~
用法很简单:

<div hidden>
  You can't see me!
</div>

这个属性的表现类似css的display:none,用了这个属性后,元素会被隐藏,块级元素也会折叠起来不再占位,和visible:hidden不一样。所以,对于不支持HTML5的浏览器来说,也可以做下简单的兼容:

*[hidden] { display: none; }

嗯,之前我们的通用做法是直接给目标元素一个style=”display:none”或者定义一个.none之类的选择器,现在我们又多了一种选择。是否好用,还要看项目实际需要吧~~

stopPropagation, preventDefault 和 return false 的区别

因为有父, 子节点同在, 因为有监听事件和浏览器默认动作之分. 使用 JavaScript 时为了达到预期效果经常需要阻止事件和动作执行. 一般我们会用到三种方法, 分别是 stopPropagation(), preventDefault() 和 return false. 它们之间有什么区别, 该何时使用呢? 将在本文中进行讲解.

术语

监听事件, 在在节点上能被监听的页面操作. 如: select 节点的 change 事件, a 节点的 click 事件.
浏览器默认动作, 指特定页面元素上带有的功能. 如: 点击 a 链接节点的跳转动作, 表单提交动作.
继续阅读stopPropagation, preventDefault 和 return false 的区别

Nginx upstream的5种权重分配方式

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:

upstream backend {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
继续阅读Nginx upstream的5种权重分配方式

程序员:伤不起的三十岁

程序员干到30岁,好不容易从码奴混到了白领,却再也干不动了,还时时面临失业的危险。30岁,是一个程序员伤不起的年龄。明天,何去何从?

一.30岁现象

在官场上,曾经有一个59岁现象,就是官员们会在59岁时,会使劲捞上一把。很明显嘛,权力过期作废,再不捞就要退休了,没有机会了。

在程序员的圈子里,也有一个30岁现象。当然,如果你有铁饭碗,比如在国企或政府机关,那你是无法理解底层劳动人民的感受的。同时也要恭喜你成为体制内的一员,可以一直干到退休无忧。

30岁现象人人都明白,但要给出一个定义并不容易。列举几个表现,也许你会觉得心有戚戚焉。

面临职业瓶颈,程序写不动,上升又困难。
薪水较高,加班变少,后浪追前浪,面临失业压力;
生活压力剧增,不敢跳槽;
招聘程序员年龄限制在30岁以下成为行业潜规则,跳槽困难。
30 岁现象和59岁现象貌似不搭边,其实都出于同样的原因:价值贬值。官员老爷在任就像皇帝,一旦退休,就成为了平民百姓,贬值那是自然的。而程序员也一样, 所谓三十而立,一旦到了30岁左右,由于面临结婚生子,一方面需要高薪抚养家庭,另一方面却无法像以前那样全身心投入到工作,性价比急剧下降;与此同时, 大批廉价的新手涌入,他们往往还使用最新的技术,老一辈程序员只能慢慢的靠边站了。 继续阅读程序员:伤不起的三十岁

jQuery 1.8.1发布

It’s been a frantic but productive few weeks, and the jQuery core team is pleased to announce that jQuery 1.8.1 is released! This version fixes the issues reported by the community following the final release of 1.8.0. Here are the files, ready for you to use:

http://code.jquery.com/jquery-1.8.1.min.js (production, compressed)
http://code.jquery.com/jquery-1.8.1.js (development, uncompressed)
The Google and Microsoft CDNs will also have copies available soon. 继续阅读jQuery 1.8.1发布

关于访问控制的一首PHP面试题

class Foo
{
    private $name = 'hdj';
    public function getName(){
        return $this->name;
    }
}

class Bar extends Foo
{
    public $name = 'deeka';
}

$bar = new Bar;
var_dump($bar->name);
var_dump($bar->getName());

访问控制

对属性或方法的访问控制,是通过在前面添加关键字 public、protected 或 private 来实现的。由 public 所定义的类成员可以在任何地方被访问;由 protected 所定义的类成员则可以被其所在类的子类和父类访问(当然,该成员所在的类也可以访问);而由 private 定义的类成员则只能被其所在类访问。