Redis命令–使用Redis命令行

本文是我们学院课程的一部分,标题为Redis NoSQL键值存储

这是Redis的速成班。 您将学习如何安装Redis并启动服务器。 此外,您将在Redis命令行中乱七八糟。 接下来是更高级的主题,例如复制,分片和集群,同时还介绍了Redis与Spring Data的集成。 在这里查看

1.简介

命令是Redis的基本概念。 这是客户端与服务器通信的唯一方式。 Redis命令集非常丰富,以至于它们有几种类别。 每个类别对应于其操作的数据结构(或功能):

  • 按键
  • 弦乐
  • 散列
  • 清单
  • 套装
  • 排序集
  • 发布/订阅
  • 事务,脚本

此外,还有几个服务命令来管理服务器配置,连接和检查运行时行为

  • 连接
  • 服务器

在本教程中,我们将继续熟悉Redis命令行工具redis-cli (在Windows上为redis-cli.exe ),我们在第一篇教程中对此进行了简要讨论。 在下一节中,我们将介绍所有Redis命令并尝试其中的大多数命令。 前面的快速说明,要查看某些命令的效果,应运行redis-cli的两个实例(在Windows上为redis-cli.exe )。

2.按键

尽管Redis具有丰富的功能,但它仍然是键/值存储。 Redis中存储的每个值都可以使用相应的键(有时是键)来检索。 本小节概述了键上的一般操作,而与键的值无关。

命令 DEL键[键…]
描述 删除一个键(或多个键)。 命令返回成功删除了多少个键。
假设密钥mykey存在,该命令将其删除。
参考 http://redis.io/commands/del

表格1

命令 DUMP键
描述 返回存储在指定键处的值的序列化版本。
假设存在密钥mykeymykey分配了简单字符串“ value ”,该命令将返回其序列化表示形式。
参考 http://redis.io/commands/dump

表2

命令 EXISTS键
描述 确定密钥是否存在。 如果键存在,则返回1,否则返回0。
假设键mykey1存在而mykey2不存在,该命令分别返回10
参考 http://redis.io/commands/exists

表3

命令 EXPIRE关键秒
描述 设置密钥的生存时间(以秒为单位)。 一旦此时间间隔到期,密钥将被删除。 如果键存在,则命令返回1,否则返回0。
假设密钥mykey存在,则其过期时间设置为1秒。
参考 http://redis.io/commands/expire

表4

命令 EXPIREAT关键时间戳
描述 将密钥的到期时间设置为UNIX时间戳。 一旦达到到期时间,密钥将被删除。 如果键存在,则命令返回1,否则返回0。
请参阅EXPIRE命令
参考 http://redis.io/commands/expireat

表5

命令 按键模式
描述 查找与给定模式匹配的所有键。 在实时服务器上执行此命令非常危险,因为它可以匹配整个键集
假定键mykey1mykey2存在,命令将它们返回为与mykey *模式匹配的键。
参考 http://redis.io/commands/keys

表6

命令 MIGRATE主机端口密钥destination-db超时
描述 将密钥从Redis实例原子转移到另一个实例。
假设密钥mykey存在并且在localhost和端口6378上运行Redis服务器的另一个实例,则mykey将以1000毫秒(1秒)的超时时间传输到数据库0 。 请注意,该mykey将从当前Redis实例中删除。 如果mykey不存在,则命令返回NOKEY响应。
参考 http://redis.io/commands/migrate

表7

命令 移动键数据库
描述 将密钥移到另一个数据库。 如果键存在且已正确移动,则命令返回1,否则返回0。
假设密钥mykey存在,它将被移至数据库2。请注意,该mykey将从当前数据库中删除。
参考 http://redis.io/commands/move

表8

命令 OBJECT REFCOUNT键
对象编码键
对象空闲时间键
描述 检查与键关联的Redis对象的内部:
  • REFCOUNT返回与指定键关联的值的引用数
  • ENCODING返回用于存储与键关联的值的内部表示形式的种类
  • IDLETIME以秒为单位返回自存储在指定键处的对象空闲(未通过读取或写入操作请求)以来的秒数。
假设存在密钥mykey ,该命令将提供一些固有细节,这些细节主要用于调试目的。 另请参见DEBUG OBJECT命令。
参考 http://redis.io/commands/object

表9

命令 持久键
描述 从密钥中删除到期时间。 如果密钥存在并且设置了到期时间(生存时间),则命令返回1,否则返回0。
假设密钥mykey存在并且设置了到期时间(请参见EXPIRE命令),该命令将从中删除到期时间。
参考 http://redis.io/commands/persist

表10

命令 PEXPIRE密钥毫秒
描述 设置密钥的生存时间(以毫秒为单位)。 一旦此时间间隔到期,密钥将被删除。 如果键存在,则命令返回1,否则返回0。
请参阅EXPIRE命令
参考 http://redis.io/commands/pexpire

表11

命令 PEXPIREAT密钥毫秒时间戳
描述 将密钥的到期时间设置为以毫秒为单位指定的UNIX时间戳。 一旦达到到期时间,密钥将被删除。 如果键存在,则命令返回1,否则返回0。
参见EXPIREAT命令
参考 http://redis.io/commands/pexpireat

表12

命令 PTTL键
描述 获取生存时间(以毫秒为单位)。 如果密钥不存在,则命令返回-2;如果密钥存在但未设置到期时间(生存时间),则命令返回-1。
假设密钥mykey存在并且将到期时间(生存时间)设置为300秒(请参阅EXPIRE命令),该命令将返回剩余生存时间。
参考 http://redis.io/commands/pttl

表13

命令 随机键
描述 从键空间返回一个随机键。 如果键空间中没有键,则命令不返回任何内容。
假设键mykeymykey1mykey2存在,命令将随机返回其中之一。
参考 http://redis.io/commands/randomkey

表14

命令 重命名键newkey
描述 重命名密钥。 如果密钥key不存在,则命令返回ERR no such key 。 请注意,如果密钥newkey存在,则其值将替换为key key值。
假设密钥mykey存在,它将被重命名为mykey3
参考 http://redis.io/commands/rename

表15

命令 RENAMENX键newkey
描述 仅当新密钥不存在时,才重命名密钥。 如果密钥key不存在,则命令返回ERR no such key 。 如果键已重命名,则命令返回1,否则返回0(如果键newkey存在)。
假设键mykey存在,而mykey4不存在,它将被重命名为mykey4
参考 http://redis.io/commands/renamenx

表16

命令 恢复键ttl序列化值
描述 使用先前使用DUMP获得的提供的序列化值创建密钥。 如果key key存在,命令将返回ERR Target key name is busy
重用我们先前所见的DUMP命令的序列化值,该命令将键mykey2值分配为“ value ”。
参考 http://redis.io/commands/restore

表17

命令 TTL键
描述 获取保留密钥的时间。 如果密钥不存在,则命令返回-2;如果密钥存在但未设置到期时间(生存时间),则命令返回-1。
请参阅PTTL命令。
参考 http://redis.io/commands/ttl

表18

命令 TYPE键
描述 确定存储在key处的类型。 如果密钥不存在,该命令将none返回none
假设存在密钥mykey并为其分配了值“ value ”,该命令将string作为密钥类型返回。
参考 http://redis.io/commands/type

表19

命令 扫描光标[MATCH模式] [COUNT个计数]
描述 递增迭代密钥空间。 游标设置为0时,迭代开始;服务器返回的游标为0时,迭代结束。
假设键mykeymykey1mykey2mykey3存在,命令将在键空间上返回光标。
参考 http://redis.io/commands/scan

表20

3.琴弦

字符串是最简单的类型,可以存储为特定键的值。 本小节将讨论特定于字符串数据类型的Redis命令。

命令 APPEND键值
描述 将值附加到键。 如果键不存在,将创建它并为其分配值。 命令返回键的字符串值的新长度。
假设键mykey存在并且具有值“ value ”,则将另一个字符串“ value ”附加到其后,生成最终值“ value value”(长度为10)。
参考 http://redis.io/commands/append

表21

命令 BITCOUNT键[开始] [结束]
描述 计算字符串中的设置位。 如果key不存在,则命令返回0。
假设键mykey存在并且具有值“ value ”,该命令将返回21作为结果。
参考 http://redis.io/commands/bitcount

表22

命令 BITOP和destkey键[key…] BITOP OR destkey键[key…] BITOP XOR destkey键[key…] BITOP NOT destkey键[key…]
描述 在字符串之间执行按位运算。 命令返回存储在目标键中的字符串的大小,该大小等于最长的输入字符串的大小。 如果键key不存在,则命令返回0。
假设键mykeymykey1以值“ value ”和“ eulav ”存在,则命令返回所得字符串的长度(5)
参考 http://redis.io/commands/bitop

表23

命令 DECR键
描述 将键的整数值减一。 如果key的值不是整数,则命令返回ERR value is not an integer or out of range 。 如果key不存在,则命令假定其值为0并递减。
假设mykey存在且值为100,该命令将其值减1,然后返回新值99。
参考 http://redis.io/commands/decr

表24

命令 DECRBY键递减
描述 将键的整数值减给定数字。 如果key的值不是整数,则命令返回ERR value is not an integer or out of range 。 如果key不存在,则命令假定其值为0,然后递减。
参见DECR命令
参考 http://redis.io/commands/decrby

表25

命令 GET键
描述 获取键的值。 如果密钥不存在,则命令返回(nil)
假设mykey存在并且值为“ value ”,则命令将其返回。
参考 http://redis.io/commands/get

表26

命令 GETBIT键偏移
描述 返回键处存储的字符串值中偏移量的位值。 如果键key不存在,则命令返回0。
假设mykey存在并且具有值“ value ”,则该命令返回1的偏移量3
参考 http://redis.io/commands/getbit

表27

命令 GETRANGE键开始结束
描述 获取存储在键处的字符串的子字符串。 命令返回“”(空字符串)如果key key不存在。 请注意,索引从0开始。
假设mykey存在并且具有值“ value ”,该命令返回范围(2,5]的子字符串“ lue ”。
参考 http://redis.io/commands/getrange

表28

命令 GETSET键值
描述 设置键的字符串值并返回其旧值。 如果key key不存在,该命令将返回(nil)作为其旧值(但仍然会分配新值)。
假设存在mykey并具有值“ value ”,该命令将返回旧值,同时给该键分配一个新值“ newvalue ”。
参考 http://redis.io/commands/getset

表29

命令 INCR键
描述 将键的整数值加1。 如果key的值不是整数,则命令返回ERR value is not an integer or out of range 。 如果key不存在,则命令假定其值为0并递增。
参见DECR命令
参考 http://redis.io/commands/incr

表30

命令 INCRBY键增量
描述 将键的整数值增加给定的数量。 如果key的值不是整数,则命令返回ERR value is not an integer or out of range 。 如果key不存在,则命令假定其值为0,并按增量递增。
参见DECR命令
参考 http://redis.io/commands/incrby

表31

命令 INCRBYFLOAT键增量
描述 将键的浮点值增加给定的数量。 如果key的值不是float或integer,则命令返回ERR value is not a valid float 。 如果key不存在,则命令假定其值为0,并按增量递增。
参见DECR命令
参考 http://redis.io/commands/incrbyfloat

表32

命令 MGET键[键…]
描述 获取所有给定键的值。 如果其中一个键不存在,则命令返回(nil)作为其值。 非常方便的命令,一次获取多个键的值。
假设键mykey1mykey2存在,该命令将返回它们的值。
参考 http://redis.io/commands/mget

表33

命令 MSET键值[键值…]
描述 将多个键设置为多个值。 非常方便的命令,一次可以设置许多键。 如果存在任何键,则其值将被覆盖。
参考 http://redis.io/commands/mset

表34

命令 MSETNX键值[键值…]
描述 仅当不存在任何键时,才将多个键设置为多个值。
请参阅MSET命令
参考 http://redis.io/commands/msetnx

表35

命令 PSETEX密钥毫秒值
描述 设置键的值和有效期限(以毫秒为单位)。 SETPEXPIRE作为一个原子命令非常强大的组合。
请参阅SETPEXPIRE命令
参考 http://redis.io/commands/psetex

表36

命令 设置键值[EX秒] [PX毫秒] [NX | XX]
描述 设置键的字符串值。 其他选项允许控制命令行为:
  • EX seconds :设置指定的到期时间,以秒为单位
  • PX milliseconds :设置指定的过期时间(以毫秒为单位)
  • NX :仅在不存在的情况下设置密钥
  • XX :仅在已存在的情况下设置密钥
假设mykey不存在,该命令将其值设置为“ value ”。
参考 http://redis.io/commands/setbit

表37

命令 SETBIT键偏移值
描述 设置或清除键处存储的字符串值中偏移量的位。 如果value不为0或1,则命令返回错误ERR bit is not an integer or out of range
假设mykey存在并且值为“ value ”,该命令将偏移量2的位设置为1。
参考 http://redis.io/commands/setbit

表38

命令 SETEX关键秒值
描述 设置密钥的值和有效期。 SET key value EX seconds命令的变化。
SET命令
参考 http://redis.io/commands/setex

表39

命令 SETNX键值
描述 仅在键不存在时设置键的值。 SET key value NX命令的变化形式。
SET命令
参考 http://redis.io/commands/setnx

表40

命令 SETRANGE键偏移值
描述 从指定的偏移量处开始覆盖键处的字符串的一部分。 如果键不存在,则其值将以0填充直到偏移量。
假设mykey存在并且值为“ value ”,该命令将后三个字符替换为“ eul”,从而得到最终值“ vaeul”。
参考 http://redis.io/commands/setrange

表41

命令 STRLEN键
描述 获取存储在键中的值的长度。 如果key不存在,则命令返回0。
假设mykey存在并且具有值“ value ”,该命令将返回其值长度( 5 )。
参考 http://redis.io/commands/strlen

表42

4.散列

我们可能会认为哈希类似于传统的对象表示法:它是字段(或属性)及其值的容器。 其预期的关键值的所有命令是哈希开始具有“H”( HGETHSET ,...)。 如果key不包含哈希值,则所有Hxxx命令WRONGTYPE Operation against a key holding the wrong kind of value返回错误WRONGTYPE Operation against a key holding the wrong kind of value

命令 HDEL关键字段[field…]
描述 删除一个或多个哈希字段。 命令返回已删除的字段数。
假设密钥mykey存在并且具有字段field1 ,该命令将从密钥中删除该字段。
参考 http://redis.io/commands/hdel

表43

命令 HEXISTS关键字段
描述 确定哈希字段是否存在。 如果字段存在,则命令返回1,否则返回0。
假设键mykey存在并且具有字段field1 ,该命令通过返回1来确认。
参考 http://redis.io/commands/hexists

表44

命令 HGET关键字段
描述 获取哈希字段的值。 如果字段不存在,则命令返回(nil)
假设键mykey存在并且具有值为“ value ”的字段field1 ,该命令将返回字符串“ value ”。
参考

表45

命令 HGETALL键
描述 获取哈希中的所有字段和值。 命令返回每个字段名称,后跟其值。
假设键mykey存在并且具有字段field1field2 ,该命令将返回其名称和值。
参考 http://redis.io/commands/hgetall

表46

命令 HINCRBY关键字段增量
描述 将哈希字段的整数值增加给定数字。
参见DECR命令
参考 http://redis.io/commands/hincrby

表47

命令 HINCRBYFLOAT关键字段增量
描述 将哈希字段的浮点值增加给定的数量。
参见DECR
参考 http://redis.io/commands/hincrbyfloat

表48

命令 HKEYS键
描述 获取哈希中的所有字段。 它与HGETALL非常相似,除了此命令仅返回字段名称(无值)。
请参阅HGETALL命令
参考 http://redis.io/commands/hkeys

表49

命令 HLEN键
描述 获取哈希中的字段数。
假设键mykey存在并且具有字段field1field2 ,该命令将返回字段总数(2)
参考 http://redis.io/commands/hlen

表50

命令 HMGET关键字段[field…]
描述 获取所有给定哈希字段的值。
假设键mykey存在且具有字段field1field2field2 ,则该命令仅返回字段field1field2值。
参考 http://redis.io/commands/hmget

表51

命令 HMSET键字段值[字段值…]
描述 将多个哈希字段设置为多个值。 如果给定密钥已经存在一些字段,则将覆盖它们。
假设键mykey不存在,该命令将其字段field1为“ value1 ”,将field2为“ value2 ”。
参考 http://redis.io/commands/hset

表52

命令 HSET关键字段值
描述 设置哈希字段的字符串值。
参见HMSET命令
参考 http://redis.io/commands/hset

表53

命令 HSETNX关键字段值
描述 仅当哈希字段不存在时才设置它的值。
请参阅HSET命令
参考 http://redis.io/commands/hset

表54

命令 HVALS键
描述 获取哈希中的所有值。
假设键mykey存在并且具有字段field1field2 ,其值分别为“ value1 ”,“ value2 ”,则该命令仅返回字段的值。
参考 http://redis.io/commands/hvals

表55

命令 HSCAN键光标[MATCH模式] [COUNT个计数]
描述 增量迭代哈希字段和关联的值。
SCAN命令
参考 http://redis.io/commands/hscan

表56

5.清单

列表是使用最广泛的数据类型,用于表示通用集合。 这很容易理解和操作。 某些列表操作具有阻止和非阻止形式。 如果给定键不包含列表值,则所有与列表相关的命令WRONGTYPE Operation against a key holding the wrong kind of value返回错误WRONGTYPE Operation against a key holding the wrong kind of value

命令 BLPOP键[键…]超时
描述 删除并获取列表中的第一个元素,或阻塞直到一个可用。 请注意, timeout应以秒为单位指定。
假设键mykey存在并保存值“ value2 ”的列表,则“ value1 ”命令返回列表中的第一个元素。
参考 http://redis.io/commands/blpop

表57

命令 BRPOP键[键…]超时
描述 删除并获取列表或块中的最后一个元素,直到有一个可用。 请注意, timeout应以秒为单位指定。
请参阅BLPOP命令
参考 http://redis.io/commands/brpop

表58

命令 BRPOPLPUSH源目的地超时
描述 从列表中弹出一个值,将其推到另一个列表中并返回它; 或阻止,直到一个可用。 请注意, timeout应以秒为单位指定。
假设键mykey存在并保存值“ value2 ”的列表,则“ value1 ”命令从中弹出“ value1 ”,并将其推入mykey1键后面的列表中。
参考 http://redis.io/commands/brpoplpush

表格59

命令 LINDEX键索引
描述 从列表中按其索引获取元素。 请注意,索引从0开始。 如果index超过列表的长度,则命令将返回(nil)作为值。
假设键mykey存在并保存值“ value2 ”的列表,则“ value1 ”命令将“ value 2 ”作为列表的第一个元素返回。
参考 http://redis.io/commands/lindex

表60

命令 LINSERT键BEFORE | AFTER枢轴值之后
描述 在列表中的另一个元素之前或之后插入一个元素。 插入值后,该命令将返回列表中元素的总数。
假设密钥mykey存在并保持值“ 值2”的列表,“VALUE1”命令“VALUE2”之后插入一个值“ 值3”。
参考 http://redis.io/commands/linsert

表61

命令 LLEN键
描述 获取列表的长度。
假设键mykey存在并保存值“ value2 ”的列表,则“ value1 ”命令返回列表(2)中元素的总数。
参考 http://redis.io/commands/llen

表62

命令 LPOP密钥
描述 删除并获取列表中的第一个元素。 请注意,如果列表为空,则命令返回(nil)作为值。
假设密钥mykey存在并保持的值“VALUE2”,“VALUE1”命令弹出从列表中的第一个元素“ 值2”的列表。
参考 http://redis.io/commands/lpop

表63

命令 LPUSH键值[值…]
描述 将一个或多个值添加到列表中。 在添加值之后,该命令将返回列表中元素的总数。 如果给定的键不存在,它将被创建。
假设键mykey不存在,该命令将其创建为列表持有者,并将其“ value1 ”,“ value2 ”放入其中。 因为它是前置操作,所以列表中元素的实际顺序将是“ value2 ”,“ value1 ”。
参考 http://redis.io/commands/lpush

表64

命令 LPUSHX键值
描述 仅当列表存在时,才将值添加到列表中。
请参阅LPUSH命令
参考 http://redis.io/commands/lpushx

表65

命令 LRANGE键启动停止
描述 从列表中获取一系列元素。
假设键mykey存在并保存值“ value3 ”,“ value2 ”,“ value1 ”的列表,该命令将返回元素“ value3 ”,“ value2 ”作为子列表。
参考 http://redis.io/commands/lrange

表66

命令 LREM密钥计数值
描述 从列表中删除元素。 该命令返回已删除元素的总数。 count参数通过以下方式影响操作:
  • count> 0 :删除等于从头到尾移动的值的元素
  • count <0 :删除等于从尾到头的值的元素
  • count = 0 :删除所有等于value的元素
假设键mykey存在并且包含值“ value3 ”,“ value2 ”,“ value1 ”的列表,该命令将从列表中删除元素“ value2 ”。
参考 http://redis.io/commands/lrem

表67

命令 LSET键索引值
描述 通过元素索引来设置列表中元素的值。
假设键mykey存在并且包含值“ value2 ”的列表,则“ value 1 ”命令将索引0的元素(第一个元素)设置为“ value 3 ”(有效地将“ value 2 ”替换为“ value 3 ”)。
参考 http://redis.io/commands/lset

表68

命令 LTRIM键启动停止
描述 将列表修剪到指定范围。
假设键mykey存在并且包含值“ value3 ”,“ value2 ”,“ value1 ”的列表,该命令会将列表修剪为2个元素(仅保留值“ value3 ”,“ value2 ”)。
参考 http://redis.io/commands/ltrim

表69

命令 RPOP密钥
描述 删除并获取列表中的最后一个元素。
请参阅LPOP命令
参考 http://redis.io/commands/rpop

表70

命令 RPOPLPUSH源目的地
描述 删除列表中的最后一个元素,将其追加到另一个列表中并返回。
请参阅BRPOPLPUSH命令
参考 http://redis.io/commands/rpoplpush

表71

命令 RPUSH键值[值…]
描述 将一个或多个值追加到列表。 追加值后,该命令将返回列表中的元素总数。
请参阅LPUSH命令
参考 http://redis.io/commands/rpush

表72

命令 RPUSHX键值
描述 仅当列表存在时,才将值追加到列表。
请参阅LPUSH命令
参考 http://redis.io/commands/rpushx

表73

命令 排序键[BY模式] [LIMIT偏移计数] [GET模式[GET模式…]] [ASC | DESC] [ALPHA] [存储目的地]
描述 对列表,集合或排序集中的元素进行排序。
这是一个功能非常强大的命令,带有丰富的选项集。 在最简单的用法中,假设键mykey存在并保存值“ value3 ”,“ value2 ”,“ value1 ”的列表,该命令将按字母顺序对元素进行排序并返回排序后的列表(“ value1 ”,“ value2 ”,“ value3 ”)。
参考 http://redis.io/commands/sort

表74

6.套装

集是与列表非常相似的数据结构,不同之处在于集不允许重复的元素。 因此,几个特定的​​操作对集合有更多的意义:并集,交集和减法。 所有期望将键的值设为集合的命令SDIFFS ”( SADDSDIFF …) SDIFF 。 如果给定键不具有设置值,则所有与设置相关的命令都将WRONGTYPE Operation against a key holding the wrong kind of value返回错误WRONGTYPE Operation against a key holding the wrong kind of value

命令 SADD主要成员[成员…]
描述 将一个或多个成员添加到集合中。 该命令返回添加到集合中的元素数。
假设密钥mykey不存在,该命令将其创建为集合持有人并将成员1放入其中。
参考 http://redis.io/commands/sadd

表75

命令 SCARD键
描述 获取集合中的成员数。
假设键mykey存在并且拥有一组成员1、2、3,则该命令返回该集合中的成员总数(3)
参考 http://redis.io/commands/scard

表76

命令 SDIFF键[键…]
描述 减去多组。 该命令返回由第一个集合和所有连续集合之间的差异引起的集合成员。
假设键mykey存在并拥有一组成员1、2、3,并且mykey1存在并拥有一组成员2、3、4,则命令返回1mykey1不存在的唯一成员)。
参考 http://redis.io/commands/sdiff

表77

命令 SDIFFSTORE目标键[键…]
描述 减去多个集合并将结果集合存储在键中。
请参阅SDIFF命令
参考 http://redis.io/commands/sdiffstore

表78

命令 SINTER键[键…]
描述 与多个集合相交。
假设键mykey存在并拥有一组成员1、2、3,mykey1存在并拥有一组成员2、3、4,则命令返回2、3mykeymykey1存在的成员)。
参考 http://redis.io/commands/sinter

表79

命令 SINTERSTORE目标键[键…]
描述 与多个集相交并将结果集存储在键中。
请参阅SINTER命令
参考 http://redis.io/commands/sinterstore

表80

命令 SISMEMBER关键成员
描述 确定给定值是否为集合的成员。
假设存在密钥mykey并拥有一组成员1、2、3 ,则该命令为成员2返回1 (存在),为成员5返回0 (不存在)。
参考 http://redis.io/commands/sismember

表81

命令 SMEMBERS密钥
描述 获取集合中的所有成员。
假设键mykey存在并且拥有一组成员1、2、3 ,则该命令将返回这些成员。
参考 http://redis.io/commands/smembers

表82

命令 SMOVE源目标成员
描述 将成员从一组移动到另一组。 如果成员已移动,则命令返回1 ,否则返回0。
假设键mykey存在并拥有一组成员1、2、3 ,则命令将1移动到另一组,并由键mykey1支持。
参考 http://redis.io/commands/smove

表83

命令 SPOP密钥
描述 从集合中删除并返回一个随机成员。
请参阅LPOP命令
参考 http://redis.io/commands/spop

表84

命令 SRANDMEMBER键[count]
描述 从集合中获取一个或多个随机成员。
假设键mykey存在并且拥有一组成员1、2、3 ,则该命令将随机返回成员1、3
参考 http://redis.io/commands/srandmember

表85

命令 SREM关键成员[成员…]
描述 从集合中删除一个或多个成员。
请参阅LREM命令
参考 http://redis.io/commands/srem

表86

命令 SUNION键[键…]
描述 添加多个集合。
假设键mykey存在并拥有一组成员1、2、3,mykey1存在并拥有一组成员2、3、4,则命令返回1、2、3、4 (所有成员均来自mykeymykey1 )。
参考 http://redis.io/commands/sunion

表87

命令 SUNIONSTORE目标键[键…]
描述 添加多个集合并将结果集合存储在密钥中。
请参阅SUNION命令
参考 http://redis.io/commands/sunionstore

表88

命令 SSCAN键光标[MATCH模式] [COUNT个计数]
描述 增量迭代set元素。
SCAN命令
参考 http://redis.io/commands/sscan

表89

7.排序集

集和排序集之间的区别在于,排序集不仅存储成员,而且还存储其分数(分数定义了排序集中的成员的排序顺序)。 所有期望将键的值设置为排序集的命令ZADD ' Z '( ZADDZCARD …) ZCARD 。 如果给定键不包含排序的集合值,则所有与排序的集合相关的命令都将WRONGTYPE Operation against a key holding the wrong kind of value返回错误WRONGTYPE Operation against a key holding the wrong kind of value

命令 ZADD关键分数成员[分数成员…]
描述 将一个或多个成员添加到排序集中,或更新其分数(如果已存在)。 该命令返回添加到集合中的元素数。
假设键mykey不存在,该命令将其创建为已排序的集合持有人,并将分数为1的成员value1放入其中。
参考 http://redis.io/commands/zadd

表90

命令 ZCARD钥匙
描述 获取排序集中的成员数。
请参阅SCARD命令
参考 http://redis.io/commands/zcard

表91

命令 ZCOUNT键最小最大
描述 用给定值内的分数对排序集中的成员进行计数。
假设密钥mykey存在和保存一组成员“VALUE1”,“VALUE2”,“ 值3”带有得分1,5,10分别命令返回数量的成员(1)46之间的分数。
参考 http://redis.io/commands/zcount

表92

命令 ZINCRBY键增量成员
描述 增加排序集中成员的分数。 该命令返回该成员的新分数。
假设键mykey存在并且拥有一组具有分数的成员“ value1 ”,“ value2 ”,“ value3
1,5,10分别指令增量得分构件“VALUE2”的由5和返回它的新得分(10)。
参考 http://redis.io/commands/zincrby

表93

命令 ZINTERSTORE目标数字键键[key…] [WEIGHTS weight [weight…]] [AGGREGATE SUM | MIN | MAX]
描述 与多个排序集相交并将结果排序后的集存储在新键中。
请参阅SINTER命令
参考 http://redis.io/commands/zinterstore

表94

命令 ZRANGE键启动停止[WITHSCORES]
描述 按索引返回排序集中的成员范围。 索引从0开始。
假设键mykey存在并且拥有一组具有分数的成员“ value1 ”,“ value2 ”,“ value3
1、5、10分别返回前两个成员(索引为01 )。
参考 http://redis.io/commands/zrange

表95

命令 ZRANGEBYSCORE键最小值最大值[WITHSCORES] [LIMIT偏移计数]
描述 按分数返回排序集中的成员范围。
假设键mykey存在并且拥有一组具有分数的成员“ value1 ”,“ value2 ”,“ value3
1,5,10分别命令返回构件“VALUE2”作为一个与图46之间的分数。
参考 http://redis.io/commands/zrangebyscore

表96

命令 ZRANK关键成员
描述 确定排序集中的成员的索引。 请注意,索引从0开始。
假设键mykey存在并且拥有一组具有分数的成员“ value1 ”,“ value2 ”,“ value3
1,5,10分别命令返回1作为成员“VALUE2”的索引。
参考 http://redis.io/commands/zrank

表97

命令 ZREM关键成员[成员…]
描述 从排序集中删除一个或多个成员。
请参阅SREM命令
参考 http://redis.io/commands/zrem

表98

命令 ZREMRANGEBYRANK键启动停止
描述 删除给定索引内排序集中的所有成员。 索引从0开始。该命令返回成功删除的成员数。
假设键mykey存在并且拥有一组具有分数的成员“ value1 ”,“ value2 ”,“ value3
1,5,10分别命令返回(2)及排除第一两个成员(具有索引01)。
参考 http://redis.io/commands/zremrangebyrank

表99

命令 ZREMRANGEBYSCORE键min max
描述 在给定分数内删除排序集中的所有成员。 该命令返回成功删除的成员数。
假设键mykey存在并且拥有一组具有分数的成员“ value1 ”,“ value2 ”,“ value3
1,5,10分别该命令将返回(1)及排除构件“VALUE2”(图46之间的分数)。
参考 http://redis.io/commands/zremrangebyscore

表100

命令 ZREVRANGE键启动停止[WITHSCORES]
描述 按索引返回排序集中的一组成员,其得分从高到低排序。
请参阅ZRANGE命令
参考 http://redis.io/commands/zrevrank

表101

命令 ZREVRANGEBYSCORE键max最小值[WITHSCORES] [LIMIT偏移量]
描述 按分数返回排序集中的成员范围,分数从高到低排序。
请参阅ZRANGEBYSCORE命令
参考 http://redis.io/commands/zrevrangebyscore

表102

命令 ZREVRANK关键成员
描述 确定成员在排序集中的索引,其得分从高到低排序。
请参阅ZRANK命令
参考 http://redis.io/commands/zrevrank

表103

命令 ZSCORE关键成员
描述 Gets the score associated with the given member in a sorted set.
Assuming the key mykey exists and holds a set of members “ value1 ”, “ value2 ”, “ value3 ” with scores
1, 5, 10 respectively, the command returns (5) as a score for a member “ value2 ”.
参考 http://redis.io/commands/zscore

Table 104

命令 ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]
描述 Adds multiple sorted sets and stores the resulting sorted set in a new key.
See SUNION command
参考 http://redis.io/commands/zunionstore

Table 105

命令 ZSCAN key cursor [MATCH pattern] [COUNT count]
描述 Incrementally iterates sorted sets elements and associated scores.
See SCAN command
参考 http://redis.io/commands/zscan

Table 106

8. Publish / Subscribe

Redis supports out-of-box publish / subscribe messaging style using its powerful data structures as a queue. If you need very simple, fast and easy to use pub/sub messaging solution, Redis is definitely a candidate to consider. For this section we need two running instances of redis-cli , one will be publisher (producer) and another will be subscriber (consumer).

命令 PSUBSCRIBE pattern [pattern …]
描述 Listens for messages published to channels matching the given patterns.
The following example subscribes the client to listen for any messages from all channels.
参考 http://redis.io/commands/psubscribe

Table 107

命令 PUBSUB subcommand [argument [argument …]]
描述 Inspects the state of the Pub/Sub subsystem. It is an introspection command and is composed of subcommands that are documented separately.
The following example inspects current active channels.
参考 http://redis.io/commands/pubsub

Table 108

命令 PUBLISH channel message
描述 Posts a message to a channel.
The following example publishes a message to channel mychannel .
And subscriber (see PSUBSCRIBE command) receives it.
参考 http://redis.io/commands/publish

Table 109

命令 PUNSUBSCRIBE [pattern [pattern …]]
描述 Stops listening for messages posted to channels matching the given. 模式
参考 http://redis.io/commands/punsubscribe

Table 110

命令 SUBSCRIBE channel [channel …]
描述 Listens for messages published to the given channels.
See PSUBSCRIBE
参考 http://redis.io/commands/subscribe

Table 111

命令 UNSUBSCRIBE [channel [channel …]]
描述 Stops listening for messages posted to the given channels.
参考 http://redis.io/commands/unsubscribe

Table 112

9. Transactions

Redis supports the powerful notion of transactions. It's not exactly the same as we used to (for example, when dealing with relational databases) but still very useful feature. The way transactions work in Redis could be described by this flow:

  • WATCH is used to provide a check-and-set (CAS) behavior to transactions: watched keys are monitored in order to detect changes against them. If at least one watched key is modified before the EXEC command, the whole transaction aborts and fails.
  • MULTI starts the transaction
  • At this point the user can issue multiple commands which will be queued
  • EXEC executes all commands
  • DISCARD aborts the transaction

Very important to notice that Redis commands can fail during a transaction, but still Redis will execute the rest of the transaction instead of rolling back. For more comprehensive details please refer to http://redis.io/topics/transactions .

命令 DISCARD
描述 Discards all commands issued after MULTI.
参考 http://redis.io/commands/discard

Table 113

命令 EXEC
描述 Executes all commands issued after MULTI.
参考 http://redis.io/commands/exec

Table 114

命令 MULTI
描述 Marks the start of a transaction block.
参考 http://redis.io/commands/multi

Table 115

命令 UNWATCH
描述 Forgets about all watched keys.
参考 http://redis.io/commands/unwatch

Table 116

命令 WATCH key [key …]
描述 Watches the given keys to determine execution of the MULTI/EXEC block.
参考 http://redis.io/commands/watch

Table 117

10. Scripting

Redis support server-side scripting using Lua programming language ( http://www.lua.org/ ). This section just goes through the set of commands related to scripts manipulation. It's quite a large topic worth a whole tutorial.

命令 EVAL script numkeys key [key …] arg [arg …]
描述 Executes a Lua script server side.
参考 http://redis.io/commands/eval

Table 118

命令 EVALSHA sha1 numkeys key [key …] arg [arg …]
描述 Executes a Lua script server side.
参考 http://redis.io/commands/evalsha

Table 119

命令 SCRIPT EXISTS script [script …]
描述 Checks existence of scripts in the script cache.
参考 http://redis.io/commands/script-exists

Table 120

命令 SCRIPT FLUSH
描述 Removes all the scripts from the script cache.
参考 http://redis.io/commands/script-flush

Table 121

命令 SCRIPT KILL
描述 Kills the script currently in execution.
参考 http://redis.io/commands/script-kill

Table 122

命令 SCRIPT LOAD script
描述 Loads the specified Lua script into the script cache.
参考 http://redis.io/commands/script-load

Table 123

11. Connection

This small set of command allows to manage some connection (session) specific parameters like authentication and database to work on.

命令 AUTH password
描述 Authenticates to the server.
参考 http://redis.io/commands/auth

Table 124

命令 ECHO message
描述 Echoes the given string.
参考 http://redis.io/commands/echo

Table 125

命令 PING
描述 Pings the server. On success, command returns PONG .
参考 http://redis.io/commands/ping

Table 126

命令 QUIT
描述 Closes the connection.
参考 http://redis.io/commands/quit

Table 127

命令 SELECT index
描述 Changes the selected database for the current connection.
参考 http://redis.io/commands/select

Table 128

12. Server

This class of commands is related to Redis server internals and manages persistence, replication, configuration and connections. Some commands will be used later on in following parts of the tutorial.

命令 BGREWRITEAOF
描述 Asynchronously rewrites the append-only file.
参考 http://redis.io/commands/bgrewriteaof

Table 129

命令 BGSAVE
描述 Asynchronously saves the dataset to disk.
参考 http://redis.io/commands/bgsave

Table 130

命令 CLIENT KILL ip:port
描述 Kills the connection of a client. The IP address and port could be obtained from CLIENT LIST command.
参考 http://redis.io/commands/client-kill

Table 131

命令 CLIENT LIST
描述 Gets the list of client connections.
Example of command's result for 2 connected clients (the output is clipped a bit).
参考 http://redis.io/commands/client-list

Table 132

命令 CLIENT GETNAME
描述 Gets the current connection name.
The command returns the name of current connection, myconn (previously set by CLIENT SETNAME command).
参考 http://redis.io/commands/client-getname

Table 133

命令 CLIENT SETNAME connection-name
描述 Sets the current connection name.
The command sets the name of current connection to myconn .
参考 http://redis.io/commands/client-setname

Table 134

命令 CONFIG GET parameter
描述 Gets the value of a configuration parameter.
参考 http://redis.io/commands/config-get

Table 135

命令 CONFIG REWRITE
描述 Rewrites the configuration file with the in memory configuration.
参考 http://redis.io/commands/config-rewrite

Table 136

命令 CONFIG SET parameter value
描述 Sets a configuration parameter to the given value.
参考 http://redis.io/commands/config-set

Table 137

命令 CONFIG RESETSTAT
描述 Resets the stats returned by INFO.
参考 http://redis.io/commands/config-resetstat

Table 138

命令 DBSIZE
描述 Returns the number of keys in the selected database.
参考 http://redis.io/commands/dbsize

Table 139

命令 DEBUG OBJECT key
描述 Gets debugging information about a key. This command includes the results of OBJECT command.
参考 http://redis.io/commands/debug-object

Table 140

命令 DEBUG SEGFAULT
描述 Makes the server crash.
参考 http://redis.io/commands/debug-segfault

Table 141

命令 FLUSHALL
描述 Removes all keys from all databases.
参考 http://redis.io/commands/flushall

Table 142

命令 FLUSHDB
描述 Removes all keys from the current database.
参考 http://redis.io/commands/flushdb

Table 143

命令 INFO [section]
描述 Gets information and statistics about the server.
参考 http://redis.io/commands/info

Table 144

命令 LASTSAVE
描述 Gets the UNIX time stamp of the last successful save to disk.
参考 http://redis.io/commands/lastsave

Table 145

命令 MONITOR
描述 Listens for all requests received by the server in real time.
参考 http://redis.io/commands/monitor

Table 146

命令 SAVE
描述 Synchronously saves the dataset to disk
参考 http://redis.io/commands/save

Table 147

命令 SHUTDOWN [NOSAVE] [SAVE]
描述 Synchronously saves the dataset to disk and then shuts down the server.
参考 http://redis.io/commands/shutdown

Table 148

命令 SLAVEOF host port
描述 Makes the server a slave of another instance, or promotes it as master. We will see this command in action later on in the tutorial.
参考 http://redis.io/commands/slaveof

Table 149

命令 SLOWLOG subcommand [argument]
描述 Manages the Redis slow queries log.
参考 http://redis.io/commands/slowlog

Table 150

命令 SYNC
描述 Internal command used for replication.
参考 http://redis.io/commands/sync

Table 151

命令 TIME
描述 Return the current server time.
参考 http://redis.io/commands/time

Table 152


翻译自: https://www.javacodegeeks.com/2015/09/redis-commands-using-redis-command-line.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值