Redis LSET命令

Redis LSET命令教程

Redis 的 LSET 命令用于将列表 KEY 中下标为 index 的元素的值设置为 value 。当 index 参数超出范围,或对一个空 列表 ( KEY 不存在)进行 LSET 时,返回一个错误。

Redis LSET命令详解

语法

192.168.98.70:6379> LSET KEY index value

参数

参数 描述
KEY 要设置值的列表的键。
index 要设置值的列表的索引。
value 要设置的具体的元素。

返回值

操作成功返回 ok ,否则返回错误信息。

时间复杂度

对头元素或尾元素进行 LSET 操作,复杂度为 O(1)。其他情况下,为 O(N), N 为列表的长度。

可用版本

>= 1.0.0

案例

KEY不存在

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, 因为此时键不存在,所以报错。

KEY存在

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命令总结

Redis 的 LSET 命令用于将列表 KEY 中下标为 index 的元素的值设置为 value 。Redis LSET 命令语法:

192.168.98.70:6379> LSET KEY index value