Redis 复制一个KEY的值到另外一个KEY

1
2
3
4
5
6
7
8
9
redis 127.0.0.1:6379> set src.key XXX
OK
redis 127.0.0.1:6379> get src.key
"XXX"
redis 127.0.0.1:6379> SCRIPT LOAD "redis.call('SET', KEYS[2], redis.call('GET', KEYS[1])); return 1;"
"1119c244463dce1ac3a19cdd4fda744e15e02cab"
redis 127.0.0.1:6379> EVALSHA 1119c244463dce1ac3a19cdd4fda744e15e02cab 2 src.key target.key
(integer) 1
redis 127.0.0.1:6379> get target.key

查看全文

Project Spore is online!

从2015年3月25号开始,陆陆续续,总算是上线了。

http://baoz.chekun.me

QQ20150418-1@2x.png

通过此项目,主要是学习了 Golang, React 的使用,有时间将会写一些心得,回顾一下此小项目的历程。

My actions are my only true belongings. I cannot escape the consequences of my actions. My actions are the ground on which I stand. - Thich Nhat Hanh

查看全文

CentOS6 快速搭建LNMP环境

  1. rpm -ivh http://7fvdgt.com1.z0.glb.clouddn.com/rpms/nginx-release-centos-6-0.el6.ngx.noarch.rpm
  2. rpm -ivh http://7fvdgt.com1.z0.glb.clouddn.com/rpms/epel-release-6-8.noarch.rpm
  3. rpm -ivh http://7fvdgt.com1.z0.glb.clouddn.com/rpms/remi-release-6.rpm
  4. /etc/yum.repos.d/remi.repo
  5. yum -y install nginx mysql-server php-fpm php-cli php-pdo php-mysql php-mcrypt php-mbstring php-gd php-tidy php-xml php-xmlrpc php-pear
  6. /etc/php-fpm.conf 用户组为nginx

chown -R nginx:nginx /var/lib/php/session(不存在则需要创建)
chown -R nginx:nginx /var/www/(web目录)
chmod -R 775 /var/www/ (同组可修改权限,方便配置ftp,ftp应该加入到nginx组,如果需要更高的安全设置,则不应当将只读的目录赋予nginx,php组可写权限)
service nginx start(start|stop|restart|reload)
service php-fpm start(start|stop|restart)
service mysqld start(start|stop|restart|reload)
设置自启动
chkconfig nginx on
chkconfig php-fpm on
chkconfig mysqld on

pureftpd
useradd -g nginx -d /var/www -s /sbin/nologin
UnixAuthentication yes
service pure-ftpd start

查看全文

php5.4 htmlspecialchars 函数的变化

上周末给一个discuz论坛做代码迁移到新服务器,过程一切顺利,然后有用户反应无法点评了,具体是:

  1. 点评中发布纯中文,会提示没有输入内容的错误
  2. 不含中文的可以正确发布
  3. 回帖中的原内容引用也消失了

从上面可以看出问题应该出在编码上了。

上面描述的问题是gbk编码。

经过一番的debug,在经过 htmlspecialchars 处理后内容就变为空了。

新系统和老系统不一样的地方就是php版本从5.3升级到5.4了。

于是查了一下这个函数的文档。

5.4.0 The default value for the encoding parameter was changed to UTF-8.
5.4.0 The constants ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML and ENT_HTML5 were added.

原来5.4开始,默认的编码变为了utf-8。

解决方法也很简单:

查看全文

小米半自动预约+抢购完工

朋友让帮忙抢个红米,无奈6,7次都没有抢到,真是耗时耗力。

于是花两天写了预约和抢购的脚本。

小米抢购不在于网速快不快,而是你的号多不多,号多中摇号的几率大,号多了维护就麻烦了,所以工具是必不可少的。

使用 golang 实现。

放出张图玩玩~~

小米半自动预约

查看全文

Laravel4SAE v1.1.0发布,增加对Log的支持

Laravel4sae 是我专门为让laravel4完美运行在新浪sae上做的开源项目。

详细介绍可以看我发布的 【在 SAE 上运行 Laravel 4】

v1.0.x完成对基础模块的兼容,今天对Log进行适配。

在Laravel4中,实际上使用了Monolog中两种写日志的handler.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
* Register a file log handler.
*
* @param string $path
* @param string $level
* @return void
*/
public function useFiles($path, $level = 'debug')
{
$level = $this->parseLevel($level);
$this->monolog->pushHandler($handler = new StreamHandler($path, $level));
$handler->setFormatter(new LineFormatter(null, null, true));
}
/**
* Register a daily file log handler.
*
* @param string $path
* @param int $days
* @param string $level
* @return void
*/
public function useDailyFiles($path, $days = 0, $level = 'debug')
{
$level = $this->parseLevel($level);
$this->monolog->pushHandler($handler = new RotatingFileHandler($path, $days, $level));
$handler->setFormatter(new LineFormatter(null, null, true));
}

让Laravel支持sae的日志,也就变得很简单了,只需要增加一个Handler即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php namespace Lavender\Cloud\Sina\Log;
use Monolog\Handler\AbstractProcessingHandler;
class SaeLogHandler extends AbstractProcessingHandler {
/**
* {@inheritdoc}
*/
protected function write(array $record)
{
sae_debug((string) $record['formatted']);
}
}

没错,就是这么简单。

查看全文