Redis LLEN命令

最后更新于:2022-04-01 00:09:17

Redis LLEN命令将返回存储在key列表的长度。如果key不存在,它被解释为一个空列表,则返回0。当存储在关key的值不是一个列表,则会返回错误。 ## 返回值 返回整数为列表键长度。 ## 语法 Redis LLEN命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> LLEN KEY_NAME ~~~ ### 例子 ~~~ redis 127.0.0.1:6379> RPUSH list1 "foo" (integer) 1 redis 127.0.0.1:6379> RPUSH list1 "bar" (integer) 2 redis 127.0.0.1:6379> LLEN list1 (integer) 2 ~~~
';

Redis LINSERT命令

最后更新于:2022-04-01 00:09:14

Redis LINSERT命令插入值在存储在key之前或参考值支点后。如果key不存在,它被认为是一个空列表,并没有进行任何操作。当存在key但不持有列表值,则返回一个错误。 ## 返回值 回复整数,列表插入操作后的长度,或-1时没有找到该值枢轴。 ## 语法 redis LINSERT命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> LINSERT KEY_NAME BEFORE EXISTING_VALUE NEW_VALUE ~~~ ### 例子 ~~~ redis 127.0.0.1:6379> RPUSH list1 "foo" (integer) 1 redis 127.0.0.1:6379> RPUSH list1 "bar" (integer) 2 redis 127.0.0.1:6379> LINSERT list1 BEFORE "bar" "Yes" (integer) 3 redis 127.0.0.1:6379> LRANGE mylist 0 -1 1) "foo" 2) "Yes" 3) "bar" ~~~
';

Redis LINDEX命令

最后更新于:2022-04-01 00:09:12

Redis LINDEX命令用于获取在存储于列表的key索引的元素。索引是从0开始的,所以0表示第一个元素,1第二个元素等等。负指数可用于指定开始在列表的尾部元素。这里,-1表示最后一个元素,-2指倒数第二个等等。 ## 返回值 字符串回复,请求的元素,或者nil当索引超出范围。 ## 语法 redis LINDEX命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> LINDEX KEY_NAME INDEX_POSITION ~~~ ### 实例 ~~~ redis 127.0.0.1:6379> LPUSH list1 "foo" (integer) 1 redis 127.0.0.1:6379> LPUSH list1 "bar" (integer) 2 redis 127.0.0.1:6379> LINDEX list1 0 "foo" redis 127.0.0.1:6379> LINDEX list1 -1 "bar" redis 127.0.0.1:6379> LINDEX list1 5 nil ~~~
';

Redis BRPOPLPUSH命令

最后更新于:2022-04-01 00:09:10

Redis BRPOPLPUSH命令用于从列表中弹出一个值,它推到另一个列表并返回它,或阻塞直到有可用。BRPOPLPUSH命令只返回最后一个元素,并插入到另一个列表中,如果有的话,或阻止客户端对指定的时间执行任意命令。 ## 返回值 回复字符串,储存在key或nil值 ## 语法 redis BRPOPLPUSH命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> BRPOPLPUSH LIST1 ANOTHER_LIST TIMEOUT ~~~ ### 例子 ~~~ redis 127.0.0.1:6379> BRPOPLPUSH list1 list2 100 ~~~ 上面的例子会阻止客户端100秒来执行任意命令。如果有任何数据来自于指定的键list1然后它会弹出数据并将其推入,否则的另一个列表百秒后返回nil值。 ~~~ (nil) (100.06s) ~~~
';

Redis BLPOP命令

最后更新于:2022-04-01 00:09:08

Redis BLPOP命令用于删除和获取列表中的第一个元素,或阻塞直到有可用。 BLPOP命令只返回第一个元素(如果有的话),或阻塞客户端对指定的时间执行任意命令。 ## 返回值 回复字符串,储存在key或nil值 ## 语法 redis BLPOP命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> BLPOP LIST1 LIST2 .. LISTN TIMEOUT ~~~ ### 例子 ~~~ redis 127.0.0.1:6379> BLPOP list1 100 ~~~ 上面的例子会阻止客户端100秒来执行任意命令。如果有任何数据来自于指定的键list1则返回,否则后返回百秒nil值。 ~~~ (nil) (100.06s) ~~~
';

Redis列表

最后更新于:2022-04-01 00:09:05

Redis列表是简单的字符串列表,排序插入顺序。您可以在头部或列表的尾部Redis的列表添加元素。 列表的最大长度为232 - 1 (每个列表超过4十亿元素4294967295)元素。 ## 例子 ~~~ redis 127.0.0.1:6379> LPUSH tutorials redis (integer) 1 redis 127.0.0.1:6379> LPUSH tutorials mongodb (integer) 2 redis 127.0.0.1:6379> LPUSH tutorials mysql (integer) 3 redis 127.0.0.1:6379> LRANGE tutorials 0 10 1) "mysql" 2) "mongodb" 3) "redis" ~~~ 在上述例子中的三个值被插入到redis的列表命名tutorials 使用LPUSH命令。 ## Redis的命令列表 如下表所示相关列出了一些基本的命令: | S.N. | 命令 & 描述 | |-----|-------------| | 1 | [BLPOP key1 [key2 ] timeout](http://www.yiibai.com/redis/lists_blpop.html) 取出并获取列表中的第一个元素,或阻塞,直到有可用 | | 2 | [BRPOP key1 [key2 ] timeout](http://www.yiibai.com/redis/lists_brpop.html) 取出并获取列表中的最后一个元素,或阻塞,直到有可用 | | 3 | [BRPOPLPUSH source destination timeout](http://www.yiibai.com/redis/lists_brpoplpush.html) 从列表中弹出一个值,它推到另一个列表并返回它;或阻塞,直到有可用 | | 4 | [LINDEX key index](http://www.yiibai.com/redis/lists_lindex.html) 从一个列表其索引获取对应的元素 | | 5 | [LINSERT key BEFORE\|AFTER pivot value](http://www.yiibai.com/redis/lists_linsert.html) 在列表中的其他元素之后或之前插入一个元素 | | 6 | [LLEN key](http://www.yiibai.com/redis/lists_llen.html) 获取列表的长度 | | 7 | [LPOP key](http://www.yiibai.com/redis/lists_lpop.html)获取并取出列表中的第一个元素 | | 8 | [LPUSH key value1 [value2]](http://www.yiibai.com/redis/lists_lpush.html) 在前面加上一个或多个值的列表 | | 9 | [LPUSHX key value](http://www.yiibai.com/redis/lists_lpushx.html)在前面加上一个值列表,仅当列表中存在 | | 10 | [LRANGE key start stop](http://www.yiibai.com/redis/lists_lrange.html)从一个列表获取各种元素 | | 11 | [LREM key count value](http://www.yiibai.com/redis/lists_lrem.html) 从列表中删除元素 | | 12 | [LSET key index value](http://www.yiibai.com/redis/lists_lset.html) 在列表中的索引设置一个元素的值 | | 13 | [LTRIM key start stop](http://www.yiibai.com/redis/lists_ltrim.html) 修剪列表到指定的范围内 | | 14 | [RPOP key](http://www.yiibai.com/redis/lists_rpop.html) 取出并获取列表中的最后一个元素 | | 15 | [RPOPLPUSH source destination](http://www.yiibai.com/redis/lists_rpoplpush.html) 删除最后一个元素的列表,将其附加到另一个列表并返回它 | | 16 | [RPUSH key value1 [value2]](http://www.yiibai.com/redis/lists_rpush.html) 添加一个或多个值到列表 | | 17 | [RPUSHX key value](http://www.yiibai.com/redis/lists_rpushx.html) 添加一个值列表,仅当列表中存在 |
';

Redis HVALS命令

最后更新于:2022-04-01 00:09:03

Redis HVALS命令用于获取在存储于 key的散列的所有值。 ## 返回值 回复数组,列表中的散列值,或当key不存在则为一个空的列表。 ## 语法 Redis HVALS命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> HVALS KEY_NAME FIELD VALUE ~~~ ### 例子 ~~~ redis 127.0.0.1:6379> HSET myhash field1 "foo" (integer) 1 redis 127.0.0.1:6379> HSET myhash field2 "bar" (integer) 1 redis 127.0.0.1:6379> HVALS myhash 1) "foo" 2) "bar" ~~~
';

Redis HSETNX命令

最后更新于:2022-04-01 00:09:01

Redis HSETNX命令用于在存储的关键值的散列设置字段,只有在字段不存在。如果键不存在,新的key会被哈希创建。如果字段已经存在,该操作没有任何影响。 ## 返回值 返回整型 * 1 如果字段是哈希值和一个新字段被设置。 * 0 如果字段已经存在于哈希那么没有执行任何操作。 ## 语法 Redis HSETNX命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> HSETNX KEY_NAME FIELD VALUE ~~~ ### 例子 ~~~ redis 127.0.0.1:6379> HSETNX myhash field1 "foo" (integer) 1 redis 127.0.0.1:6379> HSETNX myhash field1 "bar" (integer) 0 redis 127.0.0.1:6379> HGET myhash field1 "foo" ~~~
';

Redis HSET命令

最后更新于:2022-04-01 00:08:58

Redis HSET命令用于在存储的关键值的散列设置字段。如果键不存在,新的key由哈希创建。如果字段已经存在于哈希值那么将被覆盖。 ## 返回值 返回整数 * 1 如果字段是哈希值和一个新字段被设置。 * 0 如果字段已经存在于哈希并且值被更新。 ## 语法 redis HSET命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> HSET KEY_NAME FIELD VALUE ~~~ ### 实例 ~~~ redis 127.0.0.1:6379> HSET myhash field1 "foo" OK redis 127.0.0.1:6379> HGET myhash field1 "foo" ~~~
';

Redis HMSET命令

最后更新于:2022-04-01 00:08:56

Redis HMSET命令用于设置指定字段各自的值,在存储于键的散列。此命令将覆盖哈希任何现有字段。如果键不存在,新的key由哈希创建。 ## 返回值 一个简单的字符串返回 ## 语法 redis HMSET命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN ~~~ ### 实例 ~~~ redis 127.0.0.1:6379> HSET myhash field1 "foo" field2 "bar" OK redis 127.0.0.1:6379> HGET myhash field1 "foo" redis 127.0.0.1:6379> HMGET myhash field2 "bar" ~~~
';

Redis HMGET命令

最后更新于:2022-04-01 00:08:54

Redis HMGET命令用于获取与存储在键散列指定的字段相关联的值。如果字段中哈希不存在,则nil值被返回。 ## 返回值 回复数组,给定字段相关联的值的列表,与在请求时它们的顺序相同。 ## 语法 redis HMGET命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> HMGET KEY_NAME FIELD1...FIELDN ~~~ ### 例子 ~~~ redis 127.0.0.1:6379> HSET myhash field1 "foo" (integer) 1 redis 127.0.0.1:6379> HSET myhash field2 "bar" (integer) 1 redis 127.0.0.1:6379> HMGET myhash field1 field2 nofield 1) "foo" 2) "bar" 3) (nil) ~~~
';

Redis HLEN命令

最后更新于:2022-04-01 00:08:51

Redis HLEN命令用于获取包含存储于键的散列的字段的数量。 ## 返回值 回复整数哈希字段数或0当键不存在。 ## 语法 Redis HLEN命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> HLEN KEY_NAME ~~~ ### 例子 ~~~ redis 127.0.0.1:6379> HSET myhash field1 "foo" (integer) 1 redis 127.0.0.1:6379> HSET myhash field2 "bar" (integer) 1 redis 127.0.0.1:6379> HLEN myhash (integer) 2 ~~~
';

Redis HKEYS命令

最后更新于:2022-04-01 00:08:49

Redis HKEYS命令是用来获取所有字段名保存在键的哈希值。 ## 返回值 回复数组,哈希字段列表或者当key不存在是为一个空的列表。 ## 语法 Redis HKEYS命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> HKEYS KEY_NAME FIELD_NAME INCR_BY_NUMBER ~~~ ### 实例 ~~~ redis 127.0.0.1:6379> HSET myhash field1 "foo" (integer) 1 redis 127.0.0.1:6379> HSET myhash field2 "bar" (integer) 1 redis 127.0.0.1:6379> HKEYS myhash 1) "field1" 2) "field2" ~~~
';

Redis HINCRBYFLOAT命令

最后更新于:2022-04-01 00:08:47

Redis HINCRBYFLOAT命令用于增加存储在key的散列值的指定字段中,并且表示为浮点数,由指定的增量。它被设置为0在执行操作之前。如果该字段包含错误类型的值或指定的增量不是可解析为浮点数,那么出错。 ## 返回值 回复字符串,字段的增加后的值。 ## 语法 redis HINCRBYFLOAT命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> HINCRBYFLOAT KEY_NAME FIELD_NAME INCR_BY_NUMBER ~~~ ### 例子 ~~~ redis 127.0.0.1:6379> HSET myhash field 20.50 (integer) 1 redis 127.0.0.1:6379> HINCRBYFLOAT mykey field 0.1 "20.60" ~~~
';

Redis HINCRBY命令

最后更新于:2022-04-01 00:08:45

Redis HINCRBY命令用于增加存储在字段中存储由增量键哈希的数量。如果键不存在,新的key被哈希创建。如果字段不存在,值被设置为0之前进行操作。 ## 返回值 回复整数,字段的增值操作后的值。 ## 语法 redis HINCRBY命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER ~~~ ### 例子 ~~~ redis 127.0.0.1:6379> HSET myhash field1 20 (integer) 1 redis 127.0.0.1:6379> HINCRBY myhash field 1 (integer) 21 redis 127.0.0.1:6379> HINCRBY myhash field -1 (integer) 20 ~~~
';

Redis HGETALL命令

最后更新于:2022-04-01 00:08:42

Redis HGETALL命令用于获取存储在键的散列的所有字段和值。在返回的值是每一个字段名后跟其值,所以回复的长度是散列值两倍的大小。 ## 返回值 回复数组字段及其值的列表存储在哈希表,或一个空表时,键不存在。 ## 语法 redis HGETALL命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> HGETALL KEY_NAME ~~~ ### 例子 ~~~ redis 127.0.0.1:6379> HSET myhash field1 "foo" (integer) 1 redis 127.0.0.1:6379> HSET myhash field2 "bar" (integer) 1 redis 127.0.0.1:6379> HGETALL myhash 1) "field1" 2) "Hello" 3) "field2" 4) "World" ~~~
';

Redis HGET命令

最后更新于:2022-04-01 00:08:40

Redis HGET命令用于获取与字段中存储的键哈希相关联的值。 ## 返回值 回复字符串值关联字段,或nil当字段时不存在哈希或键不存在值。 ## 语法 redis HGET命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> HGET KEY_NAME FIELD_NAME ~~~ ### 实例 ~~~ redis 127.0.0.1:6379> HSET myhash field1 "foo" (integer) 1 redis 127.0.0.1:6379> HGET myhash field1 "foo" redis 127.0.0.1:6379> HEXISTS myhash field2 (nil) ~~~
';

Redis HEXISTS命令

最后更新于:2022-04-01 00:08:38

Redis HEXISTS命令被用来检查哈希字段是否存在。 ## 返回值 回复整数,1或0。 * 1, 如果哈希包含字段。 * 0 如果哈希不包含字段,或key不存在。 ## 语法 Redis HEXISTS命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> HEXISTS KEY_NAME FIELD_NAME ~~~ ### 实例 ~~~ redis 127.0.0.1:6379> HSET myhash field1 "foo" (integer) 1 redis 127.0.0.1:6379> HEXISTS myhash field1 (integer) 1 redis 127.0.0.1:6379> HEXISTS myhash field2 (integer) 0 ~~~
';

Redis HDEL命令

最后更新于:2022-04-01 00:08:36

Redis HDEL命令用于从存储在键散列删除指定的字段。如果没有这个哈希中存在指定的字段将被忽略。如果键不存在,它将被视为一个空的哈希与此命令将返回0。 ## 返回值 回复整数,从散列中删除的字段的数量,不包括指定的但不是现有字段。 ## 语法 redis HDEL命令的基本语法如下所示: ~~~ redis 127.0.0.1:6379> HDEL KEY_NAME FIELD1.. FIELDN ~~~ ### 例子 ~~~ redis 127.0.0.1:6379> HSET myhash field1 "foo" (integer) 1 redis 127.0.0.1:6379> HDEL myhash field1 (integer) 1 redis 127.0.0.1:6379> HDEL myhash field2 (integer) 1 ~~~
';

Redis哈希

最后更新于:2022-04-01 00:08:33

Redis的哈希值是字符串字段和字符串值之间的映射,所以他们是表示对象的完美数据类型 在Redis中的哈希值,可存储超过400十亿键值对。 ## 例子 ~~~ redis 127.0.0.1:6379> HMSET yiibai name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000 OK redis 127.0.0.1:6379> HGETALL yiibai 1) "name" 2) "redis tutorial" 3) "description" 4) "redis basic commands for caching" 5) "likes" 6) "20" 7) "visitors" 8) "23000" ~~~ 在上面的例子中,我们已经设置Redis的详细教程(name, description, likes, visitors)在哈希名称为 yiibai ## Redis的哈希命令 如下表所示哈希一些基本的命令: | S.N. | 命令和说明 | |-------|---------| | 1 | [HDEL key field2 [field2]](http://www.yiibai.com/redis/hashes_hdel.html) 删除一个或多个哈希字段 | | 2 | [HEXISTS key field](http://www.yiibai.com/redis/hashes_hexists.html) 判断一个哈希字段存在与否 | | 3 | [HGET key field](http://www.yiibai.com/redis/hashes_hget.html) 获取存储在指定的键散列字段的值 | | 4 | [HGETALL key](http://www.yiibai.com/redis/hashes_hgetall.html) 让所有的字段和值在指定的键存储在一个哈希 | | 5 | [HINCRBY key field increment](http://www.yiibai.com/redis/hashes_hincrby.html) 由给定数量增加的哈希字段的整数值 | | 6 | [HINCRBYFLOAT key field increment](http://www.yiibai.com/redis/hashes_hincrbyfloat.html) 由给定的递增量哈希字段的浮点值 | | 7 | [HKEYS key](http://www.yiibai.com/redis/hashes_hkeys.html) 获取所有在哈希字段 | | 8 | [HLEN key](http://www.yiibai.com/redis/hashes_hlen.html) 获取哈希字段数 | | 9 | [HMGET key field1 [field2]](http://www.yiibai.com/redis/hashes_hmget.html) 获得所有给定的哈希字段的值 | | 10 | [HMSET key field1 value1 [field2 value2 ]](http://www.yiibai.com/redis/hashes_hmset.html) 设置多个哈希字段的多个值 | | 11 | [HSET key field value](http://www.yiibai.com/redis/hashes_hset.html) 设置哈希字段的字符串值 | | 12 | [HSETNX key field value](http://www.yiibai.com/redis/hashes_hsetnx.html) 设置哈希字段的值,仅当该字段不存在 | | 13 | [HVALS key](http://www.yiibai.com/redis/hashes_hvals.html) 获取在哈希中的所有值 | | 14 | [HSCAN key cursor [MATCH pattern] [COUNT count]](http://www.yiibai.com/redis/hashes_hset.html)增量迭代哈希字段及相关值 |
';