2013年9月

Redis API 命令说明

Redis 是一个开源的、基于BSD许可的高级的 key – value 结构的存储系统。通常当作数据索引服务器来使用,可以存储 strings(纯字符串)、hashes(散列值)、lists(列表)、sets(集合)、sorted sets(有序集合)。可以说是 Memcached 的高级版。

下面介绍 Redis API 提供的文本命令,命令不区分大小写,但 key 是区分大小写的。

三、lists

有序列表,序号(index)从 0 开始,可以为负数,-1 表示最后一个元素。值可以相同。

RPUSH key value [ value ... ]

在列表的尾部添加一个或者多个值,如果 key 不存在,则会自动创建。返回添加后的列表的元素总数。

LPUSH key value [ value ... ]

同上,只是添加到头部。

RPUSHX key value

将 value 插入一个存在的列表的尾部。如果 key 不存在,则什么也不做。同样是返回执行之后列表的长度。(注意:只有一个 value,这点不同于 RPUSH)

LPUSHX key value

同上,只是插入到头部。

LLEN key

返回列表的长度,如果 key 不存在,则被看作空列表,返回0。

LINDEX key index

返回列表 key 中索引为 index 位置的值。index 从0 开始,负数表示从尾部算起,-1 表示最后一个元素,-2表示倒数第2个元素,以此类推。

LPOP key

移除并返回列表 key 的第一个元素。返回被移除的元素值,并且剩下的元素会重新索引。

RPOP key

同上,只是移除最后一个元素。

LRANGE key start stop

返回列表 key 中 index 在 [start, stop] 间的值,包含边界。

LSET key index value

修改列表中 index 位置的值为 value,如果 index 超过范围会返回错误。

LREM key count value

从列表中移除前 count 次出现的 value:

count > 0: 从头往尾移除值为 value 的元素
count < 0: 从尾往头移除值为 value 的元素
count = 0: 移除所有值为 value 的元素

返回被移除元素的个数。

LTRIM key start stop

仅保留列表中 [start, stop] 间的元素,其余的删掉。start,stop 可以为负数,表示倒数。

LINSERT key BEFORE|AFTER pivot value

把 value 插入存于 key 的列表中在基准值 pivot 的前面或后面。如果 key 不存在,则不会发生任何操作。返回操作后的列表长度,如果基准值 pivot 找不到时,返回 -1.

四、sets

SADD key member [ member ... ]

往名称为 key 的集合中添加一个或多个元素,返回成功添加的数量。如果这个 key 不存在,则会创建一个。如果 key 不是 set 类型,则返回错误。

SCARD key

返回 key 中元素的数量。

SPOP key

随机删除 key 中某个元素。

SISMEMBER key member

判断 member 是否存在于 key 的集合中,如果存在则返回 1, 不存在返回 0.

SMEMBERS key

返回所有的元素。这类似于 SINTER 只传1个参数的情况。

SRANDMEMBER key [ count ]

随机返回 count 个元素,其中 count 默认为1.如果 count 为正数,则返回的元素不会相同;如果为负数,则可能返回相同的元素。

SREM key member [ member ... ]

删除一个或多个 member ,返回成功删除的数量。

SMOVE source destination member

将 source 中的 member 移到 destination 中,即 source 中的 member 会被删除。这个过程是原子性的。成功返回 1,失败(如 source 中没有这个 member)返回 0.

SDIFF key [ key ... ]

返回存在于第1个 key 中,但不存在于后面所有的 key 中的元素。

SDIFFSTORE destination key [ key ... ]

同上,只是将结果保存于 destination 中,如果 destination 已存在,则会覆盖原来的值。返回结果集中的数量。

SINTER key [ key ... ]

返回几个集合成员的交集。

SINTERSTORE destination key [ key ... ]

同上,只是将结果保存于 destination 中。

SUNION key [ key ... ]
SUNIONSTORE  destination key [ key ... ]

与上面类似。

五、sorted sets

ZADD key score member [ score member ... ]

给名称为 key 的有序集合增加一个或多个成员元素,一个元素包含 score 和 member。其中 member 必须是唯一的,如果集合中已经存在,则会更新相应的 score 值;score 必须是浮点数,相当于分数,是排序的权值。添加之后,成员会依据 score 重新升序排列。

如果 key 不存在,则会创建一个有序集合;如果 key 不是 zset 类型,则返回错误。

ZCARD key

返回有序集合 key 的成员数量。如果 key 不存在,则返回 0。

ZCOUNT key min max

返回 score 在 min 和 max 之间(score >= min && score <= max )的成员数。负无穷大和正无穷大用 -inf 和 +inf 来表示。

ZINCRBY key increment member

增加有序集合 key 中某个成员的 score 值。如果 increment 为负数,则为减去相应的值 。如果 member 不存在,则会增加该成员,increment 则被设为 score。返回该成员的新 score 值。

ZINTERSTORE destination numkeys key [ key ... ] [ WEIGHTS weight ... ] [ AGGREGATE SUM|MIN|MAX ]

求几个有序集合的交集,并把结果存储到集合 destination 中,如果 destination 已经存在则会被覆盖。其中 numkeys 必须指定为后面 key 的数量。

后面2个可选的参数决定了结果集合中 score 的值,其中 WEIGHTS 为权重系数,与参数 key 一一对应,默认为值为 1,它将乘以与之对应的 key 中的 score 值作为结果集合中的 score 值。而 AGGREGATE 参数默认为 SUM,表示结果集合中同名的 member 的 score 值相加,MIN 表示取最小值,MAX 表示取最大值。

返回结果集合的成员数。

ZUNIONSTORE destination numkeys key [ key ... ] [ WEIGHTS weight ... ] [ AGGREGATE SUM|MIN|MAX ]

同上,只是把交集改为并集。

ZRANGE key start stop [ WITHSCORES ]

返回序号(rank)在 start 与 stop 之间的成员,如果加上可选参数,则 score 值一并返回。此排序为,score 值升序(从小到大)。支持负数,如 -1 指最后一个成员, -2 指倒数第2个成员,以此类推。

ZREVRANGE key start stop [ WITHSCORES ]

同上,只是排序为降序。

ZRANGEBYSCORE key min max [ WITHSCORES ]  [ LIMIT offset count ]

返回集合中 score 在 min 和 max 之间(闭区间)的成员,指定 WITHSCORES 参数则 score 值一并返回。成员按升序排列,分数(score)相同的成员按字典序排列。

区间一般默认为闭区间,小于等于、大于等于。当然也可以在数值前加前括号“(”来表示开区间。如:ZRANGEBYSCORE myset (60 (90。

LIMIT 参数类似于 SQL语句,从结果序列中筛选一部分,offset 为序号(从 0 开始),count 为筛选的数量。

ZREVRANGEBYSCORE key min max [ WITHSCORES ]  [ LIMIT offset count ]

同上,只是排序为降序。

ZRANK key member

返回成员 member 在序列中的序号,序号从 0 开始,升序排列。

ZREVRANK key member

同上,只是排序为降序。

ZREM key member [ member ... ]

从序列中删除一个或多个成员。返回成功删除的数量。

ZREMRANGEBYRANK key start stop

删除指定序号范围内的成员,返回成功删除的数量。

ZREMRANGEBYSCORE key min max

删除指定 score 范围内的成员,返回成功删除的数量。

ZSCORE key member

返回序列 key 中 member 的 score 值。

Nginx上搭建WordPress如何设置伪静态

设置 > 固定链接 中设置好固定链接的格式,保存后会显示 Apache 的 URL Rewrite 代码。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

把它转换为 Nginx 的 URL Rewrite 代码即可(转换工具)。当然,(平滑)重启 Nginx 是必须的。

location / {
    root /var/www/joycc;
    index index.html index.htm index.php;

    rewrite ^/index.php$ /- last;
    if (!-e $request_filename)
    {
        rewrite ^/. /blog/index.php last;
    }
}

附:Wordpress 固定链接的结构标签

%year% – 发表的年份,4位数
%monthnum% – 发表的月份,2位数
%day% – 发表日期中的天,2位数
%hour%, %minute%, %second% – 分别表示发表的时、分、秒
%postname% – 文章标题的别名,空格会被转化为中划线(-)
%post_id% – 文章唯一id
%category% – 文章分类的别名
%author% – 作者的别名,如 admin