Redis 的 LPUSH 命令用于将一个或多个值 value 插入到 列表 KEY 的表头。如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头,这几个元素的插入操作是原子的。
如果 KEY 不存在,一个空列表会被创建并执行 LPUSH 操作。当 KEY 存在但不是列表类型时,返回一个错误。在 Redis 2.4 版本以前的 LPUSH 命令,都只接受单个 value 值。
192.168.98.70:6379> LPUSH KEY value [value ...]
参数 | 描述 |
---|---|
KEY | 要添加元素的列表的键。 |
value | 要添加的具体的元素。 |
执行 LPUSH 命令后,列表的长度。
O(1)
>= 1.0.0
LPUSH 命令插入元素,使用的是列表的头插法
192.168.98.70:6379> LPUSH haicoder Redis (integer) 1 192.168.98.70:6379> LPUSH haicoder Mongo (integer) 2 192.168.98.70:6379> LPUSH haicoder Mysql (integer) 3 192.168.98.70:6379> LRANGE haicoder 0 -1 1) "Mysql" 2) "Mongo" 3) "Redis" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 LPUSH 命令,向键为 haicoder 的列表的头部插入值 Redis。接着,使用 LPUSH 命令,向键为 haicoder 的列表的头部插入值 Mongo。
使用 LPUSH 命令,向键为 haicoder 的列表的头部插入值 Mysql。最后,使用 LRANGE 命令,获取键为 haicoder 的列表的所有元素。
因为插入时使用了 LPUSH 即从头部开始插入,所以最终元素的顺序为 LPUSH 插入时的倒序。
列表可以支持插入重复元素
192.168.98.70:6379> LPUSH haicoder Redis (integer) 1 192.168.98.70:6379> LPUSH haicoder Mongo (integer) 2 192.168.98.70:6379> LPUSH haicoder Redis (integer) 3 192.168.98.70:6379> LRANGE haicoder 0 -1 1) "Redis" 2) "Mongo" 3) "Redis" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 LPUSH 命令,向键为 haicoder 的列表的头部插入值 Redis。使用 LPUSH 命令,向键为 haicoder 的列表的头部插入值 Mongo。
接着,我们使用 LPUSH 命令,向键为 haicoder 的列表的头部插入值 Redis。最后,使用 LRANGE 命令,获取键为 haicoder 的列表的所有元素,这里可以看出重复插入了值 Redis 但两个值都在列表中。
LPUSH 支持一次插入多个元素
192.168.98.70:6379> LPUSH haicoder Redis Mongo Mysql (integer) 3 192.168.98.70:6379> LRANGE haicoder 0 -1 1) "Mysql" 2) "Mongo" 3) "Redis" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 LPUSH 命令,向键为 haicoder 的列表中批量插入值 Redis、Mongo 和 Mysql。这三个值的插入操作是原子性的。
接着,使用 LRANGE 命令,获取键为 haicoder 的列表的所有元素,因为插入时使用了 LPUSH 即从头部开始插入,所以最终元素的顺序为 LPUSH 插入时的倒序。
Redis 的 LPUSH 命令用于将一个或多个值 value 插入到列表 KEY 的表头。Redis LPUSH 命令语法:
192.168.98.70:6379> LPUSH KEY value [value ...]