5. 有序集合
和散列存储着键值对的映射类似,有序集合也存储着成员与分值之间的映射,并且提供了分值处理命令,以及根据分值大小有序地获取或扫描成员的分值的命令。
基础命令
命令 | 用例和描述 |
ZADD | ZADD key-name score member [score member …]——将带有一定分值的成员添加到有序集合里面 |
ZREM | ZREM key-name member [member …]——从有序结合里面移除给定的成员,并返回被移除的成员的数量 |
ZCARD | ZCARD key-name——返回有序集合包含的成员数量 |
ZINCRBY | ZINCRBY key-name increment member——将member成员的分值加上increment |
ZCOUNT | ZCOUNT key-name min max —— 在min和max之间的成员的数量 |
ZRANK | ZRANK key-name member——返回成员member在有序集合中的排名 |
ZSCORE | ZSCORE key-name member——返回成员member的分值 |
ZRANGE | ZRANGE key-name start stop [WITHSCORES]——返回有序集合中排名介于start和stop之间的成员,如果给定了WITHSCORES选项,那么命令会将成员的分值也一并返回 |
进阶命令
命令 | 用例和描述 |
ZREVRANK | ZREVRANK key-name member——返回有序集合里成员member的排名,成员按照分值从大到小排列 |
ZREVRANGE | ZREVRANGE key-name start stop [WITHSCORES]——返回有序集合给定排名范围内的成员,按照分值从大到小排列 |
ZRANGEBYSCORE | ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]——获取有序集合中分值介于min和max之间的所有成员 |
ZREVRANGEBYSCORE | ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]——获取有序集合中分值介于min和max之间的所有成员,并按照分值从大到小的顺序来返回 |
ZREMRANGEBYRANK | ZREMRANGEBYRANK key-name start stop——移除有序集合中排名介于start和stop之间的所有成员 |
ZREMRANGEBYSCORE | ZREMRANGEBYSCORE key-name min max——移除有序集合中分值介于sart和stop之间的所有成员 |
ZINTERSTORE | ZINTERSTORE dest-key key-count key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]——对给定的有序集合执行类似于集合交集运算 |
ZUNIONSTORE | ZUNIONSTORE dest-key key-count key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]——对给定的有序集合执行类似于集合的并集运算 |
6. 发布与订阅
命令 | 用例和描述 |
SUBSCRIBE | SUBSCRIBE channel [channel …]——订阅给定的一个或多个频道 |
UNSUBSCRIBE | UNSUBSCRIBE [channel [channel …]]——退订给定的一个或多个频道,如果执行时没有给定任何频道,那么退订所有频道 |
PUBLISH | PUBLISH channel message——向给定频道发送消息 |
PSUBSCRIBE | PSUBSCRIBE pattern [pattern …]——订阅与给定模式相匹配的所有频道 |
PUNSUBSCRIBE | PUNSUBSCRIBE [pattern [pattern …]]——退订给定的模式,如果执行时没给定任何模式,那么退订所有模式 |
7. 基本redis事务
可以让一个客户端在不被其他客户端打断的情况下执行多个命令。和关系型数据库那种可以回滚的事务不同,redis基本事务中的明林归一个接一个的执行,知道所有命令都执行完毕为止。当一个事务执行完毕之后,redis才会处理其他客户端的命令。
redis的基本事务需要用到MULTI和EXEC命令,形式为先执行MULTI命令,然后输入想要在事务里面执行的命令,最后再执行EXEC命令。在执行EXEC之前,redis会将所有的命令放在一个队列里面,直到EXEC出现,才会在不被打断的情况下,一个接一个的执行存储在队列里面的命令
8. 用于处理过期时间的redis命令
命令 | 用例和描述 |
PERSIST | PERSIST key-name——移除键的过期时间 |
TTL | TTL key-name——查看给定键距离过期还有多少秒 |
EXPIRE | EXPIRE key-name seconds——让给定键在指定的秒数之后过期 |
EXPIREAT | EXPIREAT key-name timestamp——将给定键的过期时间和这位给定的UNIX时间戳 |
PTTL | PTTL key-name——查看给定键距离过期时间还有多少毫秒 |
PEXPIRE | PEXPIRE key-name milliseconds——指定毫秒数后过期 |
PEXPIREAT | PEXPIREAT key-name timestamp-milliseconds——将一个毫秒级精度的UNIX时间超设置为给定键的过期时间 |