月度归档:2017年10月

Redis中的Lua脚本

使用Lua脚本的好处:

  • 减少网络开销。可以将多个请求通过脚本的形式一次发送,减少网络时延
  • 原子操作。redis会将整个脚本作为一个整体执行,中间不会被其他命令插入。因此在编写脚本的过程中无需担心会出现竞态条件,无需使用事务。
  • 复用。客户端发送的脚步会永久存在redis中,这样,其他客户端可以复用这一脚本而不需要使用代码完成相同的逻辑。

调用Lua脚本的语法:

继续阅读

[转]理解OAuth 2.0

OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。
本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。

一、应用场景

为了理解OAuth的适用场合,让我举一个假设的例子。

有一个”云冲印”的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让”云冲印”读取自己储存在Google上的照片。

继续阅读

PostgreSQL中的系统环境变量

在学习PostgreSQL的过程中,发现PgSQL中可以设置一些系统环境变量,以及同名的数据库、同名的数据库用户,对于新手来说可能回产生一些困扰。

一、系统用户、角色、数据库

系统用户:指操作系统用户,在cat /etc/passwd中可以查看的用户。比方说超级用户 root 、执行PgSQL的用户postgre、执行mysql的用户mysql等。

角色:数据库中的用户,在psql的 shell 中可以通过 select rolname from pg_roles; 查看到的用户。

数据库:数据库名,可以通过psql -l 查看。

继续阅读

PostgreSQL的pg_hba.conf 客户端认证

认证是数据库服务器对客户端用户身份鉴别的过程,并且确定客户端以该用户是否可以连接数据库服务器。PostgreSQL提供多种不同的客户端认证方式,而pg_hba.conf就是客户端认证的配置文件,pg_hba即PostGreSQL host-base authentication的简称。

继续阅读