KV型内存数据库Redis(5)

默认情况下ZRANGE命令仅返回元素,若添加了WITHSCORES选项则会将score一并返回。返回列表中元素和score成对出现,前一个为元素后一个为score。

> zrange z 0 -1 1) "a" 2) "b" 3) "c" > zrange z 0 -1 WITHSCORES 1) "a" 2) "1" 3) "b" 4) "2" 5) "c" 6) "5"

类似地,ZREVRANGE指令按照score递减排序(从大到小)。

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

返回有序集key中score在min和max(包括等于min和max)之间的的元素,按照score值递增排列。

默认情况下ZRANGEBYSCORE命令仅返回元素,若添加了WITHSCORES选项则会将score一并返回。返回列表中元素和score成对出现,前一个为元素后一个为score。

可选的LIMIT参数指定返回结果的数量及区间,类似于SQL中的SELECT offset, count,offset为跳过元素的数量,count为返回元素的最大数量。

类似地,ZREVRANGEBYSCORE命令可以按照score值递减排列。

ZRANK, ZREVRANK ZRANK key member

返回有序集key中成员member的排名。其中有序集成员按score值递增(从小到大)顺序排列。

排名以0为底,score值最小的成员排名为0。

使用 ZREVRANK 命令可以获得成员按 score 值递减(从大到小)排列的排名。

ZINCRBY ZINCRBY key increment member

为有序集key的成员member的score值加上增量increment,increment可以为负值,可以为整数或者浮点数��

当key不存在,或 member不是key的成员时,ZINCRBY会初始化空集合,或者将成员初始化为0。

当key指向其它类型时,则会返回一个错误。

Redis应用进阶 事务 127.0.0.1:6379> RPUSH a 1 2 3 QUEUED 127.0.0.1:6379> LRANGE a 0 -1 QUEUED 127.0.0.1:6379> EXEC 1) (integer) 3 2) 1) "1" 2) "2" 3) "3"

Redis提供了事务机制,支持原子性地执行多条指令。

MULTI命令进入事务模式,其后的命令进入队列缓存,直到EXEC命令执行队列中的命令,或者DISCARD命令放弃事务执行。

EXEC命令会以列表的形式返回事务中所有命令的返回值。

若事务的指令队列中存在语法错误则整个事务都会放弃执行。若队列中某条指令出现了运行时错误(如哈希指令操作了列表), Redis会继续执行事务中的后续指令。

Redis保证在事务的原子性,事务执行期间不会有其它客户端的指令插入。

Redis事务不支持回滚必须由使用者保证一致性。

因为Redis是单线程执行的,总是能保证事务的隔离性。Redis事务不提供额外的持久化机制,持久性由持久化配置决定。

WATCH命令应在事务开始前执行,用于监视某个键的值是否改变。 若在执行WATCH和EXEC指令中间,任意一个被监视的键发生改变或被删除那么事务将中止执行,EXEC命令会返回nil。

127.0.0.1:6379> WATCH lock OK # 若此时其它客户端修改了lock的值,那么事务不会开始执行。 127.0.0.1:6379> MULTI OK 127.0.0.1:6379> SET b 1 QUEUED 127.0.0.1:6379> GET b QUEUED 127.0.0.1:6379> EXEC 1) OK 2) "1"

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e09f70bdc9085347e509b9c215eb523f.html