jsp旅游网站开发系统,网站开发需求分析参考文献,昆山网站建设费用,中国专业室内设计公司排名本文是我们学院课程的一部分#xff0c;标题为Redis NoSQL键值存储 。 这是Redis的速成班。 您将学习如何安装Redis并启动服务器。 此外#xff0c;您将在Redis命令行中乱七八糟。 接下来是更高级的主题#xff0c;例如复制#xff0c;分片和集群#xff0c;同时还介绍了… 本文是我们学院课程的一部分标题为Redis NoSQL键值存储 。 这是Redis的速成班。 您将学习如何安装Redis并启动服务器。 此外您将在Redis命令行中乱七八糟。 接下来是更高级的主题例如复制分片和集群同时还介绍了Redis与Spring Data的集成。 在这里查看 目录 1.简介 2.按键 3.琴弦 4.散列 5.清单 6.套装 7.排序集 8.发布/订阅 9.交易 10.脚本编写 11.连接 12.服务器 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键 描述 返回存储在指定键处的值的序列化版本。 例 假设存在密钥mykey并mykey分配了简单字符串“ value ”该命令将返回其序列化表示形式。 参考 http://redis.io/commands/dump 表2 命令 EXISTS键 描述 确定密钥是否存在。 如果键存在则返回1否则返回0。 例 假设键mykey1存在而mykey2不存在该命令分别返回1和0 。 参考 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 命令 按键模式 描述 查找与给定模式匹配的所有键。 在实时服务器上执行此命令非常危险因为它可以匹配整个键集 。 例 假定键mykey1和mykey2存在命令将它们返回为与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 命令 随机键 描述 从键空间返回一个随机键。 如果键空间中没有键则命令不返回任何内容。 例 假设键mykey mykey1和mykey2存在命令将随机返回其中之一。 参考 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时迭代结束。 例 假设键mykey mykey1 mykey2和mykey3存在命令将在键空间上返回光标。 参考 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。 例 假设键mykey和mykey1以值“ 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作为其值。 非常方便的命令一次获取多个键的值。 例 假设键mykey1和mykey2存在该命令将返回它们的值。 参考 http://redis.io/commands/mget 表33 命令 MSET键值[键值…] 描述 将多个键设置为多个值。 非常方便的命令一次可以设置许多键。 如果存在任何键则其值将被覆盖。 例 参考 http://redis.io/commands/mset 表34 命令 MSETNX键值[键值…] 描述 仅当不存在任何键时才将多个键设置为多个值。 例 请参阅MSET命令 参考 http://redis.io/commands/msetnx 表35 命令 PSETEX密钥毫秒值 描述 设置键的值和有效期限以毫秒为单位。 SET和PEXPIRE作为一个原子命令非常强大的组合。 例 请参阅SET和PEXPIRE命令 参考 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” HGET HSET ...。 如果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存在并且具有字段field1 field2 该命令将返回其名称和值。 参考 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存在并且具有字段field1 field2 该命令将返回字段总数2 。 参考 http://redis.io/commands/hlen 表50 命令 HMGET关键字段[field…] 描述 获取所有给定哈希字段的值。 例 假设键mykey存在且具有字段field1 field2 field2 则该命令仅返回字段field1 field2值。 参考 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存在并且具有字段field1 field2 其值分别为“ 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.套装 集是与列表非常相似的数据结构不同之处在于集不允许重复的元素。 因此几个特定的操作对集合有更多的意义并集交集和减法。 所有期望将键的值设为集合的命令SDIFF “ S ” SADD SDIFF … 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则命令返回1 mykey1不存在的唯一成员。 参考 http://redis.io/commands/sdiff 表77 命令 SDIFFSTORE目标键[键…] 描述 减去多个集合并将结果集合存储在键中。 例 请参阅SDIFF命令 参考 http://redis.io/commands/sdiffstore 表78 命令 SINTER键[键…] 描述 与多个集合相交。 例 假设键mykey存在并拥有一组成员1、2、3而mykey1存在并拥有一组成员2、3、4则命令返回2、3 mykey和mykey1存在的成员。 参考 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 所有成员均来自mykey和mykey1 。 参考 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 ZADD ZCARD … 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”带有得分1510分别命令返回数量的成员1用4和6之间的分数。 参考 http://redis.io/commands/zcount 表92 命令 ZINCRBY键增量成员 描述 增加排序集中成员的分数。 该命令返回该成员的新分数。 例 假设键mykey存在并且拥有一组具有分数的成员“ value1 ”“ value2 ”“ value3 ” 1510分别指令增量得分构件“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分别返回前两个成员索引为0和1 。 参考 http://redis.io/commands/zrange 表95 命令 ZRANGEBYSCORE键最小值最大值[WITHSCORES] [LIMIT偏移计数] 描述 按分数返回排序集中的成员范围。 例 假设键mykey存在并且拥有一组具有分数的成员“ value1 ”“ value2 ”“ value3 ” 1510分别命令返回构件“VALUE2”作为一个与图4和6之间的分数。 参考 http://redis.io/commands/zrangebyscore 表96 命令 ZRANK关键成员 描述 确定排序集中的成员的索引。 请注意索引从0开始。 例 假设键mykey存在并且拥有一组具有分数的成员“ value1 ”“ value2 ”“ value3 ” 1510分别命令返回1作为成员“VALUE2”的索引。 参考 http://redis.io/commands/zrank 表97 命令 ZREM关键成员[成员…] 描述 从排序集中删除一个或多个成员。 例 请参阅SREM命令 参考 http://redis.io/commands/zrem 表98 命令 ZREMRANGEBYRANK键启动停止 描述 删除给定索引内排序集中的所有成员。 索引从0开始。该命令返回成功删除的成员数。 例 假设键mykey存在并且拥有一组具有分数的成员“ value1 ”“ value2 ”“ value3 ” 1510分别命令返回2及排除第一两个成员具有索引0和1。 参考 http://redis.io/commands/zremrangebyrank 表99 命令 ZREMRANGEBYSCORE键min max 描述 在给定分数内删除排序集中的所有成员。 该命令返回成功删除的成员数。 例 假设键mykey存在并且拥有一组具有分数的成员“ value1 ”“ value2 ”“ value3 ” 1510分别该命令将返回1及排除构件“VALUE2”与图4和6之间的分数。 参考 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. Its 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. Its 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 commands 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