`
gitzhangyl
  • 浏览: 19933 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Redis命令-有序集合-zadd

阅读更多

 

原文

http://redis.io/commands/zadd

 

简介

Add one or more members to a sorted set, or update its score if it already exists.

 

添加一个或多个成员到有序集合,如果成员已经存在则更新它的分数。

 

语法

ZADD key [NX|XX] [CH] [INCR] score member [score member ...]

 

版本

Available since 1.2.0.

 

自1.2.0版本可用。

 

时间复杂度

Time complexity: O(log(N)) for each item added, where N is the number of elements in the sorted set.

 

 O(log(N)):N是有序集合中成员的数量。

 

描述

Adds all the specified members with the specified scores to the sorted set stored at key. It is possible to specify multiple score / member pairs. If a specified member is already a member of the sorted set, the score is updated and the element reinserted at the right position to ensure the correct ordering.

 

添加所有带指定分数的指定成员到有序集合。可以添加多个分数/成员对。如果一个指定的成员已经是有序集合的成员,那么它的分数会被更新并且这个成员会被重新插入到正确的位置来保证准确的排序。

 

 If key does not exist, a new sorted set with the specified members as sole members is created, like if the sorted set was empty. If the key exists but does not hold a sorted set, an error is returned.

 

如果key不存在,带指定成员的新有序集合被创建,类似这个有序集合是空的。如果key已经存在但不是有序集合,返回错误。

 

 The score values should be the string representation of a double precision floating point number. +inf and -inf values are valid values as well.

 

分数是双精度浮点数的字符串表示形式。+inf和-inf也是有效值。

 

ZADD选项

Redis 3.0.2及以上版本支持。

 

ZADD supports a list of options, specified after the name of the key and before the first score argument. Options are:

  • XX: Only update elements that already exist. Never add elements.
  • NX: Don't update already existing elements. Always add new elements.
  • CH: Modify the return value from the number of new elements added, to the total number of elements changed (CH is an abbreviation of changed). Changed elements are new elements added and elements already existing for which the score was updated. So elements specified in the command line having the same score as they had in the past are not counted. Note: normally the return value of ZADD only counts the number of new elements added.
  • INCR: When this option is specified ZADD acts like ZINCRBY. Only one score-element pair can be specified in this mode.

 ZADD支持一系列选项,在key名称之后和第一个分数参数之前进行指定。选项包括:

  • XX:仅更新已经存在的元素。从不添加元素。
  • NX:不更新已经存在的元素。总是添加新元素。
  • CH:修改返回值,从添加的新元素数量到变更元素的数量(CH是changed的缩写)。变更元素包括添加的新元素、以及已经存在且分数被更新的元素。因此,如果指定的元素分数和该元素的原有分数相等,那么这个元素不计算在内。注意:正常情况下,ZADD的返回值仅计算添加的新元素的数量。
  • INCR:当指定这个选项时,ZADD就像ZINCRBY。这个模式下,仅可以指定一个分数/成员对。

 返回值

 Integer reply, specifically:

  • The number of elements added to the sorted sets, not including elements already existing for which the score was updated.

If the INCR option is specified, the return value will be Bulk string reply:

  • the new score of member (a double precision floating point number), represented as string.

整数:添加到有序集合的元素数量,不包括已经存在且分数被更新的元素。
如果指定INCR选项,返回值是字符串:成员的新分数(双精度浮点数),表示为字符串。

 

 历史

 >= 2.4: Accepts multiple elements. In Redis versions older than 2.4 it was possible to add or update a single member per call.

 

2.4及以上版本,这个命令可以接受多个元素。2.4以前版本每次只可以添加或更新一个成员。

 

例子

redis>  ZADD myzset 1 "one"
(integer) 1
redis>  ZADD myzset 1 "uno"
(integer) 1
redis>  ZADD myzset 2 "two" 3 "three"
(integer) 2
redis>  ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "uno"
4) "1"
5) "two"
6) "2"
7) "three"
8) "3"
redis> 

 

分享到:
评论

相关推荐

    redis64-3.0.501 免安装版

    6. **数据结构与操作**:Redis中的基本数据结构包括字符串、哈希、列表、集合和有序集合,每种都有丰富的操作命令,如SET/GET(字符串)、HSET/HGET(哈希)、LPUSH/RPOP(列表)、SADD/SREM(集合)、ZADD/ZREM...

    redis-windows-7.2.3.zip

    此外,Redis提供了丰富的操作命令,如GET/SET用于读写字符串,HSET/HGET用于哈希,LPOP/RPOP用于列表,SADD/SREM用于集合,ZADD/ZRANGE用于有序集合。Redis还支持事务(Transactions)、发布/订阅(Pub/Sub)模式、...

    redis-windows-7.2.5.zip

    - ZADD/ZRANGE:处理有序集合,`ZADD zset_key score member`添加带分数的成员,`ZRANGE zset_key start stop [WITHSCORES]`按分数排序获取成员。 4. **持久化** - RDB:定期保存当前数据库状态为一个文件,如`...

    nicolasff-phpredis-2.1.3-167-ga5e53f1.tar.gz

    - 有序集合(Sorted Set):`zAdd`, `zScore`, `zRange` 6. **高级特性** - 事务(Transaction):`multi`, `exec` - 脚本(Lua Scripting):`eval`, `evalsha` - Pub/Sub(发布/订阅):`subscribe`, `publish` - ...

    redis-py-master.zip

    `redis-py`是Python社区广泛使用的Redis客户端,它提供了丰富的API来操作Redis的各种数据结构,如字符串、哈希、列表、集合、有序集合等。以下将详细介绍`redis-py`中的关键概念和用法: 1. **连接Redis服务器**: ...

    linux redis安装(redis-2.6.14.tar.gz)

    此外,Redis还提供了丰富的数据结构操作,如哈希(`HSET`, `HGET`),列表(`LPUSH`, `LPOP`),集合(`SADD`, `SMEMBERS`)和有序集合(`ZADD`, `ZRANGE`)。在生产环境中,你可能还需要关注Redis的主从复制、哨兵...

    常用命令---idea--Linux--redis--dos

    - `ZADD zset score member`:向有序集合添加元素并设定分数 - `ZRANGE zset start stop [WITHSCORES]`:按顺序获取有序集合的部分元素 4. **DOS命令**(在Windows环境下): DOS命令是Windows操作系统早期的...

    lua-resty-redis-connector-master

    lua-resty-redis-connector支持多种Redis命令,包括但不限于字符串操作(如GET、SET、INCR等)、哈希表操作(HGETALL、HSET等)、列表操作(LPOP、RPush等)、集合操作(SADD、SMEMBERS等)以及有序集合操作(ZADD、...

    redis实战-redis-action.zip

    2. **Redis命令**:Redis提供了大量的命令来操作数据,如`SET`用于设置键值,`GET`用于获取键值,`HSET`用于设置哈希字段,`LPOP`用于从列表头部弹出元素,`SADD`用于向集合添加元素,`ZADD`用于向有序集合添加带...

    Redis--参考资料即总结

    2. **命令操作**:掌握Redis命令,如GET/SET用于字符串操作,HGETALL/HMSET用于哈希,LPOP/RPOP用于列表,SADD/SMEMBERS用于集合,ZADD/ZRANGE用于有序集合。 3. **事务**:了解Redis的简单事务模型,通过MULTI/...

    redis-client.zip

    客户端工具提供了操作这些数据类型的命令,如`RPUSH`向列表尾部添加元素,`HGETALL`获取整个哈希,`ZADD`向有序集合添加元素并指定分数等。 5. **事务(Transactions)**:Redis提供原子性的事务操作,客户端可以...

    windows-redis-7.0.0下载

    例如,使用`SET`和`GET`操作字符串,`HSET`和`HGET`处理哈希表,`LPUSH`和`LPOP`管理列表,`SADD`和`SMEMBERS`操作集合,以及`ZADD`和`ZRANGE`处理有序集合。此外,Redis还提供了事务(Transactions)、发布/订阅...

    Redis-x64-3.2.100压缩包及使用说明.rar

    - `ZADD zsetname score member`/`ZRANGE zsetname start stop [WITHSCORES]`:处理有序集合。 **解决连接错误:** 1. 检查服务器是否已启动:使用`redis-cli -p 6379 ping`测试连接。 2. 防火墙设置:确保6379端口...

    php_redis-2.2.7-5.6

    - 有序集合:`$redis->zAdd('zsetName', 1, 'member')`,`$redis->zRange('zsetName', 0, -1)`等。 - 发布订阅:`$redis->publish('channel', 'message')`,`$redis->subscribe(['channel'])`等。 4. 常见问题及...

    Redis-x64-3.2.100

    - **有序集合操作**:`ZADD zset score member` 添加成员到有序集合,`ZRANGE zset start stop [WITHSCORES]` 返回有序集合指定范围内的成员。 - **订阅与发布**:`SUBSCRIBE channel` 订阅频道,`PUBLISH channel ...

    phpredis-master.zip php中redis扩展库

    Redis是一种高性能的键值数据库,它提供了丰富的数据结构,如字符串、哈希、列表、集合、有序集合等,适用于缓存、会话管理等多种场景。而PHP的Redis扩展则为开发者提供了方便的接口来操作这些数据结构。 **安装与...

    Redis-win-3.2.100

    每种类型都有相应的命令进行操作,如`SET`、`GET`用于字符串,`HSET`、`HGET`用于哈希,`LPUSH`、`LPOP`用于列表,`SADD`、`SMEMBERS`用于集合,`ZADD`、`ZRANGE`用于有序集合。 8. **持久化**:Redis提供了两种...

    redis-3.0.0.gem

    Redis是一款开源、高性能的键值对存储系统,它支持数据结构如字符串、哈希表、列表、集合和有序集合,广泛应用于缓存、数据库、消息中间件等场景。`redis-3.0.0.gem` 是Ruby语言的Redis客户端库,它允许Ruby开发者...

    Redis-x64-3.0.501.rar

    此外,Redis还支持复杂的操作,如`LPOP/RPOP`对列表的处理,`SADD/SMEMBERS`对集合的操作,以及`ZADD/ZRANGE`对有序集合的管理。 Redis的缓存特性使其在高并发场景下表现出色,它可以极大地提高读写速度,降低...

    redis4.0.1、redis4.0.1-gem、nginx 1.8 、redis 4.0.6压缩包

    例如,`SET`和`GET`用于字符串,`HSET`和`HGET`用于哈希,`LPush`和`RPop`用于列表,`SADD`和`SMEMBERS`用于集合,以及`ZADD`和`ZRANGE`用于有序集合。 3. **主从复制**:为了实现高可用性,Redis支持主从复制。...

Global site tag (gtag.js) - Google Analytics