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)增量迭代哈希字段及相关值 |