Redis 的 LSET 命令用于将列表 KEY 中下标为 index 的元素的值设置为 value 。当 index 参数超出范围,或对一个空 列表 ( KEY 不存在)进行 LSET 时,返回一个错误。
192.168.98.70:6379> LSET KEY index value
参数 | 描述 |
---|---|
KEY | 要设置值的列表的键。 |
index | 要设置值的列表的索引。 |
value | 要设置的具体的元素。 |
操作成功返回 ok ,否则返回错误信息。
对头元素或尾元素进行 LSET 操作,复杂度为 O(1)。其他情况下,为 O(N), N 为列表的长度。
>= 1.0.0
LSET 命令,当 KEY 不存在时,报错
192.168.98.70:6379> EXISTS haicoder (integer) 0 192.168.98.70:6379> LSET haicoder 0 Redis (error) ERR no such key
我们首先,使用 EXISTS 命令,判断键为 haicoder 的列表不存在。接着,使用 LSET 命令,设置键为 haicoder 的列表的 0 号位置的值为 Redis, 因为此时键不存在,所以报错。
LSET 命令,当 KEY 存在时,设置成功
192.168.98.70:6379> LPUSH haicoder Redis (integer) 1 192.168.98.70:6379> LSET haicoder 0 Mongo OK 192.168.98.70:6379> LRANGE haicoder 0 -1 1) "Mongo" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 LPUSH 命令,向键为 haicoder 的列表中插入元素 Redis。接着,使用 LSET 命令,设置键为 haicoder 的列表的 0 号位置的值为 Mongo, 设置成功。
最后,我们使用 LRANGE 命令,获取列表的所有元素,返回了 Mongo,说明 LSET 命令将原来索引位置的值覆盖了。
索引越界时,报错
192.168.98.70:6379> LPUSH haicoder Redis (integer) 1 192.168.98.70:6379> LSET haicoder 1 Mongo (error) ERR index out of range 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 LPUSH 命令,向键为 haicoder 的列表中插入元素 Redis。最后,使用 LSET 命令,设置键为 haicoder 的列表的 1 号位置的值为 Mongo, 设置失败,因为列表的最大索引为 0。
Redis 的 LSET 命令用于将列表 KEY 中下标为 index 的元素的值设置为 value 。Redis LSET 命令语法:
192.168.98.70:6379> LSET KEY index value