Appearance
Garnet 数据结构
Hash
HDEL
Syntax
bash
HDEL key field [field ...]
从存储在 key 处的哈希中删除指定字段。 该哈希中不存在的指定字段将被忽略。如果 key 不存在,则将其视为空哈希,并且此命令返回 0。
HEXISTS
Syntax
bash
HEXISTS key field
如果 field 是存储在key处的哈希中的现有字段,则返回。
HGET
Syntax
bash
HGET key field
返回与存储在key处的哈希中的字段关联的值。
HGETALL
Syntax
bash
HGETALL key
返回存储在key处的哈希的所有字段和值。在返回值中,每个字段名称后面都跟着它的值,因此回复的长度是哈希大小的两倍。
HINCRBY
Syntax
bash
HINCRBY key field increment
按增量增加存储在key处的散列中存储在字段中的数字。如果key不存在,则会创建一个包含哈希值的新key。如果字段不存在,则在执行操作之前该值将设置为 0。 HINCRBY 支持的值范围仅限于 64 位有符号整数。
HINCRBYFLOAT
Syntax
bash
HINCRBYFLOAT key field increment
将存储在key 处并表示浮点数的哈希的指定字段增加指定的增量。如果增量值为负,则结果是哈希字段值减少而不是增加。如果该字段不存在,则在执行操作之前将其设置为 0。如果发生以下情况之一,则返回错误:
- 该字段包含错误类型的值(不是字符串)。
- 当前字段内容或指定增量不可解析为双精度浮点数。
HKEYS
Syntax
bash
HKEYS key
返回存储在 key 处的哈希中的所有字段名称。
HLEN
Syntax
bash
HLEN key
返回 key 处存储的哈希中包含的字段数。
HMGET
Syntax
bash
HMGET key field [field ...]
返回与 key 处存储的哈希中指定字段关联的值。
对于哈希中不存在的每个字段,返回 nil 值。由于不存在的键被视为空哈希,因此针对不存在的键运行 HMGET将返回 nil 值列表。
HMSET
Syntax
bash
HMSET key field value [field value ...]
已弃用,支持具有多个字段值对的 HSET。
将指定字段设置为其存储在key处的哈希中各自的值。此命令将覆盖哈希中已存在的任何指定字段。如果key不存在,则会创建一个包含哈希值的新key。
HRANDFIELD
Syntax
bash
HRANDFIELD key [count [WITHVALUES]]
当仅使用 key 参数调用时,从存储在 key 处的哈希值返回一个随机字段。
如果提供的计数参数为正,则返回不同字段的数组。数组的长度是 count 或哈希的字段数 (HLEN), 以较小者为准。
如果使用负计数调用,则行为会发生变化,并且允许该命令多次返回同一字段。在这种情况下,返回的字段数是指定计数的绝对值。
可选的 WITHVALUES 修饰符更改回复,使其包含随机选择的哈希字段的相应值。
HSCAN
Syntax
bash
HSCAN key cursor [MATCH pattern] [COUNT count]
迭代存储在给定key处的哈希的字段和值。与 SSCAN 和 ZSCAN 命令相同, HSCAN 用于增量迭代哈 set* 的元素
match 参数允许在从集合中检索元素后对元素应用过滤器。 count 选项设置从服务器返回到此命令的最大项目数的限制。此限制还与全局服务器设置的 object-scan-count-limit 一起设置。
HSET
Syntax
bash
HSET key field value
将指定字段设置为其存储在key处的哈希中各自的值。此命令会覆盖哈希中存在的指定字段的值。如果key不存在,则会创建一个包含哈希值的新key。
HSETNX
Syntax
bash
HSETNX key field value
仅当字段尚不存在时,才将存储在key处的哈希中的字段设置为值。如果key不存在,则会创建一个包含哈希值的新key。如果字段已经存在,则此操作无效。
HVALS
Syntax
bash
HVALS key
返回存储在key处的哈希中的所有值。
List
LINDEX
Syntax
bash
LINDEX key index
删除存储在key的列表中索引 index 处的元素。该索引是从零开始的。负索引可用于指定从列表尾部开始的元素
LINSERT
Syntax
bash
LINSERT key BEFORE|AFTER pivot element
在以中心点位置元素(pivot)之前或者之后插入元素。当key不存在时,认为是空列表,不进行任何操作。
LLEN
Syntax
bash
LLEN key
返回存储在 key 处的列表的长度。如果 key 不存在,则将其解释为空列表并返回 0。
LMOVE
Syntax
bash
LMOVE source destination LEFT|RIGHT LEFT|RIGHT
原子地返回并删除存储在 source 的列表的第一个/最后一个元素(头/尾取决于 wherefrom 参数),并将元素推送到第一个/最后一个元素(头/尾取决于 whereto 参数)存储在destination的列表的名称。
此命令取代了现已弃用的 RPOPLPUSH。执行 LMOVE RIGHT LEFT 是等效的。
LPOP
Syntax
bash
LPOP key [count]
删除并返回存储在key处的列表的第一个元素。
默认情况下,该命令从列表开头弹出单个元素。当提供可选的 count 参数时,回复将包含最多 count 个元素,具体取决于列表的长度。
LPUSH
Syntax
bash
LPUSH key [element] [element ...]
将所有指定值插入存储在key 的列表的头部。如果key不存在,则在执行推送操作之前将其创建为空列表。
LPUSHX
Syntax
bash
LPUSHX key [element] [element ...]
仅当key已存在并保存列表时,才将指定值插入存储在key处的列表的头部。与 LPUSH 相反,当key不存在时,不会执行任何操作。
LRANGE
Syntax
bash
LRANGE key start stop
返回存储在key处的列表的指定元素。偏移量 start 和 stop 是从零开始的索引,0 是列表的第一个元素(列表的头部),1 是下一个元素,依此类推。
LREM
Syntax
bash
LREM key count element
从存储在key的列表中删除等于 element 的第一个 count 次出现的元素。 count参数通过以下方式影响操作:
count > 0: 删除与从头到尾移动的元素相等的元素。
count < 0: 删除等于从尾部移动到头部的元素的元素。
count = 0: 删除所有等于element的元素。
LTRIM
Syntax
bash
LTRIM key start stop
修剪现有列表,使其仅包含指定范围内的指定元素。 start 和 stop 都是从零开始的索引,其中 0 是列表的第一个元素(头),1 是下一个元素,依此类推。
RPOP
Syntax
bash
RPOP key [count]
删除并返回存储在key处的列表的最后一个元素。
默认情况下,该命令从列表末尾弹出单个元素。当提供可选的 count 参数时,回复将包含最多 count 个元素,具体取决于列表的长度。
RPOPLPUSH
Syntax
bash
RPOPLPUSH source destination
原子地返回并删除存储在源处的列表的最后一个元素(尾部),并将该元素推送到存储在目标处的列表的第一个元素(头部)。
迁移或编写新代码时,可以用带有 RIGHT 和 LEFT 参数的 LMOVE 替换它。
RPUSH
Syntax
bash
RPUSH key element [element]
将所有指定值插入存储在key的列表的尾部。如果key不存在,则在执行推送操作之前将其创建为空列表。
RPUSHX
Syntax
bash
RPUSHX key element [element]
仅当key和列表存在时,才将指定值插入存储在key处的列表的尾部。与 RPUSH相反,当key不存在时不会执行任何操作。
Set
SADD
Syntax
bash
SADD key member [member]
将指定成员添加到存储在key处的集合中。已属于该集合成员的指定成员将被忽略。如果key不存在,则在添加指定成员之前创建一个新集合。
SCARD
Syntax
bash
SCARD key
返回存储在key处的集合的集合基数(元素数量)。
SMEMBERS
Syntax
bash
SMEMBERS key
返回存储在key处的设置值的所有成员。
SPOP
Syntax
bash
SPOP key [count]
从存储在key处的设置值中删除并返回一个或多个随机成员。
SREM
Syntax
bash
SREM key member [member]
从存储在key处的集合中删除指定的成员。不属于该集合的指定成员将被忽略。
如果key不存在,则将其视为空集,并且此命令返回 0。
SSCAN
Syntax
bash
SSCAN key cursor [MATCH pattern] [COUNT count]
迭代 Sets 类型的元素。与 HSCAN 和 ZSCAN 命令相同,SSCAN 用于增量迭代key处存储的集合的元素。
match 参数允许在从集合中检索元素后对元素应用过滤器。 count选项设置从服务器返回到此命令的最大项目数的限制。此限制还与全局服务器设置的 object-scan-count-limit 一起设置。
Sorted Set
ZADD
Syntax
bash
ZADD key score member [score member ...]
将具有指定分数的所有指定成员添加到存储在 key 处的排序集中。可以指定多个分数/成员对。如果指定的成员已经是排序集的成员,则更新分数并将元素重新插入到正确的位置以确保正确的排序。
如果 key 不存在,则会创建一个新的排序集,其中指定的成员作为唯一成员,就像排序集为空一样。
分数值应该是双精度浮点数的字符串表示形式。
ZCARD
Syntax
bash
ZCARD key
返回存储在key处的排序集的排序集基数(元素数)
ZCOUNT
Syntax
bash
ZCOUNT key min max
返回排序集中key上得分介于 min 和 max 之间的元素数量。
min 和 max 参数具有与 ZRANGEBYSCORE 所描述的相同的语义。
ZDIFF
Syntax
bash
ZDIFF numkeys key [key ...] [WITHSCORES]
返回第一个和所有连续输入排序集键之间的差异。输入键的总数由 numkeys 指定。
不存在的键被认为是空集。
ZINCRBY
Syntax
bash
ZINCRBY key increment member
按增量增加存储在 key 处的排序集中成员的分数。如果有序集中不存在成员,则将其添加为增量作为其分数(就好像其先前的分数为 0.0)。如果key不存在,则创建一个以指定成员作为其唯一成员的新排序集。
当key存在但不包含有序集时,会返回错误。
分数值应该是数值的字符串表示形式,并接受双精度浮点数。可以提供负值来减少分数。
ZLEXCOUNT
Syntax
bash
ZLEXCOUNT key min max
当排序集中的所有元素都以相同的分数插入时,为了强制按字典顺序排序,此命令返回排序集中在key处的元素数量,其值介于 min 和 max 之间。
min 和 max 参数的含义与ZRANGEBYLEX中描述的含义相同。
ZPOPMAX
Syntax
bash
ZPOPMAX key [count]
删除并返回key存储的排序集中得分最高的 count 个成员。
如果未指定,计数的默认值为 1。指定高于排序集基数的计数值不会产生错误。当返回多个元素时,得分最高的元素将位于第一个,其次是得分较低的元素。
ZPOPMIN
Syntax
bash
ZPOPMIN key [count]
删除并返回key处存储的排序集中得分最低的 count 个成员。
如果未指定,计数的默认值为 1。指定高于排序集基数的计数值不会产生错误。当返回多个元素时,得分最低的元素将排在第一个,然后是得分较高的元素。
ZRANDMEMBER
Syntax
bash
ZRANDMEMBER key [count [WITHSCORES]]
当仅使用 key 参数调用时,从存储在key处的排序集值中返回一个随机元素。
如果提供的计数参数为正,则返回不同元素的数组。数组的长度是 count 或排序集的基数 ZCARD,以较小者为准。
如果使用负计数调用,则行为会发生变化,并且允许该命令多次返回相同的元素。在这种情况下,返回的元素数量是指定计数的绝对值。
可选的WITHSCORES修饰符更改回复,使其包含从排序集中随机选择的元素的相应分数。
ZRANGE
Syntax
bash
ZRANGE key start stop [BYSCORE|BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
返回存储在 key 处的排序集中指定范围的元素。
ZRANGE 可以执行不同类型的范围查询:按索引(排名)、按分数或按字典顺序。
ZRANGEBYLEX
Syntax
bash
ZRANGEBYLEX key min max [LIMIT offset count]
当排序集中的所有元素都以相同的分数插入时,为了强制按字典顺序排序,此命令返回排序集中 key 处的所有元素,其值介于 min 和 max 之间
如果排序集中的元素具有不同的分数,则返回的元素是未指定的。
从旧版本迁移时,可以用带有 BYLEX 参数的 ZRANGE 替换它。
ZRANGEBYSCORE
Syntax
bash
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
返回排序集中 key 上得分在 min 和 max 之间的所有元素(包括得分等于 min 或 max 的元素)。这些元素被认为是从低分到高分排序的。
具有相同分数的元素按字典顺序返回。
迁移或编写新代码时,可以将其替换为带有 BYSCORE 参数的 ZRANGE
ZRANK
Syntax
bash
ZRANK key member [WITHSCORE]
返回存储在 key 处的排序集中成员的排名,分数从低到高排序。排名(或索引)从 0 开始,这意味着得分最低的成员排名为 0。
可选的WITHSCORE参数用返回的元素的分数来补充命令的回复。
使用 ZREVRANK 获取元素的排名,其分数从高到低排序。
ZREM
Syntax
bash
ZREM key member [member ...]
从存储在 key 处的排序集中删除指定的成员。不存在的成员将被忽略。
ZREMRANGEBYLEX
Syntax
bash
ZREMRANGEBYLEX key min max
当排序集中的所有元素都以相同的分数插入时,为了强制按字典顺序排序,此命令会删除存储在由 min 和 max 指定的字典范围之间的 key 处的排序集中的所有元素。
min 和 max 的含义与 ZRANGEBYLEX 命令相同。类似地,如果使用相同的 min 和 max 参数调用,此命令实际上会删除 ZRANGEBYLEX 将返回的相同元素。
ZREMRANGEBYSCORE
Syntax
bash
ZREMRANGEBYSCORE key min max
删除存储在 key 处的排序集中分数在 min 和 max(含)之间的所有元素。
ZREMRANGEBYRANK
Syntax
bash
ZREMRANGEBYRANK key start stop
删除排序集中存储在key上且等级介于 start 和 stop 之间的所有元素。 start 和 stop 都是基于 0 的索引,其中 0 是得分最低的元素。这些索引可以是负数,它们表示从得分最高的元素开始的偏移量。例如:-1 是得分最高的元素,-2 是得分第二高的元素,依此类推。
ZREMRANGEBYSCORE
Syntax
bash
ZREMRANGEBYSCORE key min max
删除存储在 key 处的排序集中分数在 min 和 max(含)之间的所有元素。
ZREVRANGE
Syntax
bash
ZREVRANGE key start stop [WITHSCORES]
返回存储在key处的排序集中指定范围的元素。这些元素被认为是按照从最高分到最低分的顺序排列的。字典序降序用于具有相同分数的元素。
除了相反的顺序外,ZREVRANGE 与 ZRANGE类似。
ZREVRANK
Syntax
bash
ZREVRANK key member [WITHSCORE]
返回存储在 key 处的排序集中成员的排名,分数从高到低排序。排名(或索引)从 0 开始,这意味着得分最高的成员排名为 0。
可选的WITHSCORE参数用返回的元素的分数来补充命令的回复。
使用 ZRANK 获取元素的排名,分数从低到高排序。
ZSCAN
Syntax
bash
ZSCAN key cursor [MATCH pattern] [COUNT count]
迭代有序集的元素。与 HSCAN 和 SSCAN 命令相同,使用 ZSCAN 是为了增量迭代 key 处存储的集合的元素。
match 参数允许在从集合中检索元素后对元素应用过滤器。 count选项设置从服务器返回到此命令的最大项目数的限制。此限制还与全局服务器设置的 object-scan-count-limit 一起设置。
ZSCORE
Syntax
bash
ZSCORE key member
返回 key 处排序集中成员的分数。
如果有序集中不存在member,或者 key 不存在,则返回nil。
Geospatial indices
GEOADD
Syntax
bash
GEOADD key [NX | XX] [CH] longitude latitude member [longitude latitude member ... ]
将指定的地理空间项(经度、纬度、名称)添加到指定的键。数据作为排序集存储到键中,这样就可以使用 GEOSEARCH 命令查询项目。
该命令采用标准格式 x,y 的参数,因此必须在纬度之前指定经度。可索引的坐标存在限制:非常靠近极点的区域不可索引。
限制如下:
- 有效经度范围为 -180 到 180 度。
- 有效纬度范围为 -85.05112878 到 85.05112878 度。
当用户尝试索引指定范围之外的坐标时,该命令将报告错误。
注意:没有 GEODEL 命令,因为您可以使用 ZREM 删除元素。 Geo索引结构是一个排序集。
GEOADD 还提供以下选项:
- XX: 只更新已经存在的元素。切勿添加元素。
- NX: 不要更新已经存在的元素。始终添加新元素。
- CH: 将返回值从新增元素的数量修改为已更改元素的总数(CH 是changed 的缩写)。
更改的元素是添加的新元素和坐标已更新的已存在元素。因此,在命令行中指定的与过去具有相同分数的元素不被计算在内。注意:通常情况下, GEOADD 的返回值只统计新增元素的数量。
注意: XX 和 NX 选项是互斥的。
GEODIST
Syntax
bash
GEODIST key member1 member2 [M|KM|FT|MI]
返回由排序集表示的地理空间索引中两个成员之间的距离。
给定一个表示地理空间索引的排序集(使用 GEOADD 命令填充),该命令返回指定单位中两个指定成员之间的距离。
如果一个或两个成员缺失,该命令将返回 NULL。
单位必须是以下之一,默认为米:
- m 代表米
- km 代表公里。
- mi 代表英里
- ft 代表英尺
计算距离时假设地球是一个完美的球体,因此在边缘情况下可能存在高达 0.5% 的误差。
GEOHASH
Syntax
bash
GEOHASH key [member [member ...]]
返回有效的 Geohash 字符串,表示一个或多个元素在表示地理空间索引的排序集值中的位置(其中使用GEOADD添加元素)
GEOPOS
Syntax
bash
GEOPOS key [member [member ...]]
返回由 key 处的排序集表示的地理空间索引的所有指定成员的位置(经度、纬度)。
给定一个表示地理空间索引的排序集(使用 GEOADD命令填充),获取指定成员的坐标通常很有用。当通过 GEOADD 填充地理空间索引时,坐标将转换为 52 位 geohash,因此返回的坐标可能不完全是用于添加元素的坐标,但可能会引入小错误。
该命令可以接受可变数量的参数,因此即使指定了单个元素,它也始终返回位置数组。
GEOSEARCH
Syntax
bash
GEOSEARCH key <FROMMEMBER member> <BYBOX width height <M|KM|FT|MI>> [ASC|DESC] [WITHCOORD WITHDIST WITHHASH]
使用 GEOADD返回填充有地理空间信息的排序集的成员,这些成员位于给定形状指定的区域的边界内。
查询的中心点由以下选项之一提供:
- FROMMEMBER: 使用给定现有 member 在排序集中的位置
查询的形状由该选项提供:
- BYBOX: 在轴对齐的矩形内搜索,由height和width确定。
该命令可以选择使用以下选项返回附加信息:
- WITHDIST: 同时返回返回的物品距指定中心点的距离。距离以与半径或高度和宽度参数指定的单位相同的单位返回。
- WITHCOORD: 同时返回匹配项的经度和纬度。
- WITHHASH: 还以 52 位无符号整数的形式返回项目的原始 geohash 编码排序集分数。这仅调试有用,否则一般用户不会感兴趣。
默认情况下,匹配项返回时未排序。要对它们进行排序,请使用以下两个选项之一:
ASC: 相对于中心点,从最近到最远对返回的项目进行排序。
DESC: 相对于中心点,从最远到最近对返回的项目进行排序。
返回值
匹配成员的数组,其中每个子数组代表一个项目(经度,纬度)。