赞
踩
命令 | 说明 |
---|---|
del key名 | 在key存在 时删除key |
exists key名 | 检查给定 key 是否存在,存在 返回1 ,否则返回0 |
keys 通配符 | 查找所有符合给定模式( pattern)的 key |
move key名 dbid | 将当前数据库的 key 移动到给定的数据库 dbid 当中 |
rename key名 新key名 | 修改 key 的名称 |
renamex key名 新key名 | 仅当newkey 不存在时,将key 改名为newkey |
type key名 | 返回 key 所储存的值的类型 |
select dbid | 切换数据库 ,数据库为0-15 (默认一共16 个数据库) |
dbsize | 查看数据库的key 数量 |
flushdb | 清空当前数据库中的数据 |
flushall | 清空所有数据库中的数据 |
echo | 打印命令 |
dump key名 | 序列化给定 key ,并返回被序列化的值 |
expire key名 seconds | 为给定 key 设置过期时间,以秒计 |
expireat key名 timestamp | 为 key 设置过期时间,时间参数是 UNIX 时间戳 |
pexprieat key名 milliseconds-timestamp | 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计 |
persist key名 | 移除 key 的过期时间,key 将持久保持 |
ttl key名 | 以秒 为单位,返回给定 key 的剩余生存时间 (TTL, time to live),如果 key 不存在或者没有设置过期 时间,则返回 -1 或 -2。 |
pttl key名 | 以毫秒 为单位返回 key 的剩余的过期时间 |
randomkey | 从当前数据库中随机返回一个 key |
scan cursor [match pattern] [count count] | 迭代数据库中的数据库键 |
SCAN cursor [MATCH pattern] [COUNT count]
SCAN cursor [MATCH pattern] [COUNT count]
是 Redis 数据库中的一个命令,用于迭代数据库中的键。这个命令特别有用,因为它允许你在不阻塞 Redis 服务器的情况下,以增量方式检索键。这里是命令的各个部分的解释:
SCAN cursor:
cursor
是一个无符号的 64 位整数,用于迭代过程。在第一次调用 SCAN
时,应将其设置为 0
。每次调用 SCAN
后,它都会返回一个新的 cursor
值,你可以在下一次调用时使用这个值来继续迭代。cursor
返回 0
时,表示迭代已完成。[MATCH pattern]:
?
匹配一个字符,而 *
匹配零个或多个字符。MATCH user:*
将只返回以 “user:” 开头的键。[COUNT count]:
COUNT
可以帮助你更好地控制迭代的速度和资源的使用。例如,如果你希望迭代进行得慢一些以减少对 Redis 的压力,你可以设置一个较小的 count
值。示例:
假设你有一个包含大量键的 Redis 数据库,并且你想迭代并打印出所有以 “user:” 开头的键。你可以使用如下的 Lua 脚本来完成这个任务(这里使用 Redis 的 Lua 脚本只是为了演示目的,实际上你可以直接在 Redis 命令行或客户端中调用 SCAN
命令):
local cursor = '0'
local pattern = 'user:*'
local count = 100
repeat
local res = redis.call('SCAN', cursor, 'MATCH', pattern, 'COUNT', count)
cursor = res[1]
local keys = res[2]
for i, key in ipairs(keys) do
print(key)
end
until cursor == '0'
这个脚本会不断调用 SCAN
命令,直到迭代完成(即 cursor
变为 0
)。在每次迭代中,它都会打印出返回的键。
dump
与restore
DUMP
命令用于序列化给定的键(key),并返回一个包含键值
的序列化版本的二进制字符串
。这个命令对于迁移或备份特定键的值非常有用。DUMP
命令的语法如下:
DUMP key
其中 key
是你想要序列化的键的名称。
如果键存在,DUMP
命令将返回一个包含两个元素的字符串数组:
例如,假设你在 Redis 中设置了一个键值对,并且键为 “mykey”,值为 “Hello, Redis!”,你可以使用 DUMP
命令来序列化这个键的值:
redis-cli DUMP mykey
输出可能类似于:
"\x00\x0dHello, Redis!\r\n"
注意这个输出是一个二进制字符串,并且可能包含不可见的字符(如换行符)。这个序列化字符串可以使用 RESTORE
命令在另一个 Redis 数据库中恢复为原始键值对。
RESTORE
命令的语法如下:
RESTORE key ttl serialized-value [REPLACE] [ABSTTL] [IDLETIME idle-time] [FREQ freq]
其中:
key
是要恢复的键的名称。ttl
是该键的过期时间(以秒为单位),如果设置为 0,则键永不过期。serialized-value
是 DUMP
命令返回的序列化值。[REPLACE]
是一个可选参数,如果键已经存在并且设置了该参数,则替换旧值。[ABSTTL]
是一个可选参数,如果设置,则 ttl
是绝对时间戳(以 UNIX 时间戳表示)。[IDLETIME idle-time]
是一个可选参数,用于设置键的空闲时间。[FREQ freq]
是一个可选参数,用于设置访问频率(仅在 Redis 6.0 及更高版本中可用)。请注意,DUMP
和 RESTORE
命令通常用于高级用例,如跨 Redis 实例迁移数据。对于常规的数据备份和恢复操作,你可能需要使用其他方法,如 Redis 的持久化功能(RDB 快照或 AOF 日志)或 Redis 的复制和集群功能。
keys 通配符
keys *
匹配数据库中所有key
keys h?llo
匹配hello,hallo,hxllo
等keykeys h*llo
匹配hllo,heeello
等keykeys h[ae]llo
匹配hello,hallo
[root@server ~]# redis-cli -p 6379 #-p指定端口号 127.0.0.1:6379> dbsize (integer) 0 127.0.0.1:6379> set name huazi OK 127.0.0.1:6379> dbsize (integer) 1 127.0.0.1:6379> get name "huazi" 127.0.0.1:6379> del name (integer) 1 127.0.0.1:6379> dbsize (integer) 0 127.0.0.1:6379> get name (nil) 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> set name huazi OK 127.0.0.1:6379[1]> move name 0 (integer) 1 127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> dbsize (integer) 1 127.0.0.1:6379> get name "huazi" 127.0.0.1:6379> keys na* 1) "name" 127.0.0.1:6379> exists name #存在返回1, (integer) 1 127.0.0.1:6379> exists name1 #不存在返回0 (integer) 0 127.0.0.1:6379> expire name 10 #设置10s期限 (integer) 1 127.0.0.1:6379> get name #10s内可以得到key值 "huazi" 127.0.0.1:6379> get name #10s过后key值被销毁 (nil) 127.0.0.1:6379> set name huazi OK 127.0.0.1:6379> rename name key OK 127.0.0.1:6379> get key "huazi" 127.0.0.1:6379> expire key 30 #设置过期时间为30s (integer) 1 127.0.0.1:6379> ttl key #查看剩余时间 (integer) 27 127.0.0.1:6379> persist key #将key的时间设置为永久 (integer) 1 127.0.0.1:6379> ttl key (integer) -1 127.0.0.1:6379> set name huazi OK 127.0.0.1:6379> flushdb #删除当前数据库中的数据 OK 127.0.0.1:6379> keys * (empty array) 127.0.0.1:6379> select 1 #切换到1数据库 OK 127.0.0.1:6379[1]> keys * 1) "name" 127.0.0.1:6379[1]> select 0 #切换到0数据库 OK 127.0.0.1:6379> flushall #删除所有数据库中的数据 OK 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> keys * (empty array) 127.0.0.1:6379[1]> select 0 OK
127.0.0.1:6379[1]> set name huazi
OK
127.0.0.1:6379[1]> move name 0 #将key为name的键值对移动到0数据库,移动后就没有这个键值对了
(integer) 1
127.0.0.1:6379[1]> keys *
(empty array)
string
String
是 redis
最基本的类型,你可以理解成与 Memcached
一模一样的类型,一个 key
对应一个 value
。String
类型是二进制安全的意思是 redis
的 string
可以包含任何数据
。比如jpg
图片或者序列化的对象。
String
类型是 Redis
最基本的数据类型,String
类型的值最大能存储 512MB。
String
类型一般用于缓存、限流、计数器、分布式锁、分布式Session。
命令 | 说明 |
---|---|
set key value | 设置指定 key 的值 |
get key | 获取指定 key 的值 |
getrange key start end | 返回 key 中字符串值的子字符 ,end=-1 时表示全部 |
setbit key offset value | 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit) |
getbit key offset | 对 key 所储存的字符串值 ,获取指定偏移量上的位(bit) |
mset key value [key value...] | 同时设置一个 或多个 key-value 对 |
mget key1 [key2...] | 获取所有(一个或多个)给定 key 的值 |
getset key value | 将给定 key 的值设为 value ,并返回 key的旧值(old value) |
setex key seconds value | 设置key 的值value ,并将 key 的过期时间设为 seconds (以秒 为单位) |
setnx key value | 只有在 key 不存在时设置 key 的值 |
setrange key offset value | 用 value 参数覆盖给定 key 所储存的字符串值,从偏移量 offset 开始,默认从下标0 开始 |
strlen key | 返回 key 所储存的字符串值的长度 |
msetnx key value [key value...] | 同时设置一个 或多个 key-value 对,当且仅当所有给定 key 都不存在 |
psetex key milliseconds value | 与 setex 命令相似,但它以毫秒 为单位设置 key 的生存时间 |
incr key | 将 key 中储存的数字值增一 |
incrby key increment | 将 key 所储存的值加上给定的增量值(increment) |
incrbyfloat key increment | 将 key 所储存的值加上给定的浮点增量值(increment) |
decr key | 将 key 中储存的数字值减一 |
decrby key decrement | key 所储存的值减去 给定的减量值(decrement) |
append key value | 如果 key 已经存在并且是一个字符串,append 命令将指定的 value 追加到该 key 原来值 value 的末尾 |
setbit key offset value
Redis
中,SETBIT
命令用于设置字符串值(string value
)在指定偏移量(offset
)上的位(bit
)的值。这个命令在二进制数据处理中
非常有用,特别是当你需要以位
为单位
存储或修改数据
时。SETBIT
命令的语法如下:
SETBIT key offset value
key
是你想要操作的键的名称。offset
是你想要设置的位的偏移量(从 0 开始计数)。value
是你想要设置的位的值,只能是 0 或 1。如果 key
不存在,Redis 会创建一个新的字符串值,并且这个字符串值的长度足以容纳指定的偏移量。在偏移量之后的字符串部分会被填充为 0(即空的二进制字符串)。
如果 offset
大于当前字符串值的长度,Redis 会在字符串的末尾添加足够的 0 来达到指定的偏移量,然后设置该位的值。
需要注意的是,SETBIT
命令并不会自动扩展字符串的长度以包含整个字节(8位)。如果你设置了一个字符串末尾之后的位,Redis 只会扩展字符串到足以包含该位的长度,而不会扩展到下一个完整的字节。
示例:
mykey
的键,并且它的值是字符串 "a"
(在 ASCII 中,'a'
的值是 97,其二进制表示为 01100001
)。现在你想要设置第 7 位的值为 1(从右往左数,最低位是第 0 位):redis-cli SETBIT mykey 7 1
这个命令将把 mykey
的值修改为二进制表示 01100011
,对应的 ASCII 字符是 'c'
。所以,如果你之后使用 GET mykey
命令,你将得到值 "c"
。
注意:虽然 SETBIT
命令可以修改字符串中的位,但修改后的字符串可能不再是一个有效的文本字符串(即它可能不再表示一个可打印的字符或字符串)。在上面的示例中,我们修改了 'a'
的二进制表示来得到一个不同的字符 'c'
。但是,你也可以使用 SETBIT
命令来修改任意二进制数据,而不仅仅是可打印的字符串。
getbit key offset
GETBIT
命令用于获取字符串值(string value
)在指定偏移量(offset
)上的位的值。这个命令在处理二进制数据时非常有用,因为它允许你以位为单位读取数据。GETBIT
命令的语法如下:
GETBIT key offset
key
是你想要获取其位值的键的名称。offset
是你想要获取的位的偏移量(从 0 开始计数)。如果 key
不存在,或者 offset
超出了字符串值的长度,GETBIT
命令将返回 0
。
示例:
假设你有一个名为 mykey
的键,并且它的值是字符串 "a"
(在 ASCII 中,'a'
的值是 97,其二进制表示为 01100001
)。现在你想要获取第 2 位的值(从右往左数,最低位是第 0 位):
redis-cli GETBIT mykey 2
这个命令将返回 1
,因为第 2 位(从右往左数)在二进制表示 01100001
中是 1
。
如果你尝试获取一个不存在的键的位值,或者一个存在的键但偏移量超出了其值的长度,GETBIT
命令将返回 0
:
redis-cli GETBIT nonexistingkey 0 # 返回 0,因为键不存在
redis-cli SET mykey "a"
redis-cli GETBIT mykey 7 # 返回 0,因为 "a" 的二进制表示只有 7 位,第 7 位不存在
请注意,偏移量是从 0 开始的,并且 Redis 允许你访问字符串值末尾之后的位(即超出当前字符串长度的偏移量),但这些位的值将被视为 0
。
setrange key offset value
SETRANGE 命令在 Redis 中的用法
SETRANGE 是 Redis 中的一个命令,用于在指定的 key 所储存的字符串值中,从偏移量 offset 开始,用指定的字符串 value 覆盖。以下是关于 SETRANGE 命令的详细解释:
基本语法:
SETRANGE key offset value
key
:需要修改的字符串键名。offset
:开始覆盖的偏移量。value
:要覆盖的字符串值。返回值:
命令执行后,返回被修改后的字符串总长度。
注意事项:
key
原来储存的字符串长度比 offset
小,那么在原字符串
和 offset
之间的空白部分将用零字节(“\x00”)来填充。Redis
字符串的大小被限制在 512 兆以内。如果需要更大的空间,可以使用多个 key
来实现。Redis
需要分配内存空间,这有时候可能会造成服务器阻塞。命令示例:
127.0.0.1:6379> SET url "this site"
OK
127.0.0.1:6379> SETRANGE url 5 www.biancheng.net
(integer) 22
127.0.0.1:6379> GET url
"this www.biancheng.net"
"www.biancheng.net"
覆盖了原来的字符串。内存分配:
版本要求:
综上所述,SETRANGE 命令为 Redis 提供了一个在字符串中指定位置进行覆盖的功能,使得对字符串的修改操作更加灵活和高效。
List
Redis列表
是简单的字符串列表
,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)
或者尾部(右边)
一个列表最多可以包含2^32^ - 1
个元素 (4294967295, 每个列表超过40亿个元素)。
List
类型一般用于关注人、简单队列
等命令语法 | 说明 |
---|---|
lpush key value1 [value2...] | 将一个 或多个值 插入到列表头部 |
lpop key | 移出 并获取 列表的第一个元素 |
lrange key start stop | 获取 列表指定范围内的元素 |
lpushx key value | 将一个值 插入到已存在 的列表头部 |
rpush key value1 [value2...] | 在列表 中添加一个 或多个值 |
rpop key | 移除 列表的最后一个元素 ,返回值为移除的元素 |
rpushx key value | 为已存在的列表添加值 |
llen key | 获取列表长度 |
linsert key before | after pivot value | 在列表的pivot元素前 或者后插入value元素 |
lindex key index | 通过索引获取 列表中的元素 |
lset key index value | 通过索引 修改列表元素的值 |
lrem key count value | 移除列表元素 |
ltrim key count value | 对一个列表进行修剪,就是让列表只保留指定区间内的元素 ,不在指定区间之内的元素都将被删除 |
blpop key1 [key2...] timeout | 移出并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止 block left pop (两个会话测试) |
brpop key1 [key2...] timeout | 移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止 |
brpoplpush source destination timeout | 从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它;如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止 |
rpoplpush source destination | 移除列表的最后一个元素,并将该元素添加到另一个列表并返回 |
lmove source destination right left | 将source 的右边的值移动到destination 左边插入 |
lmpop numkeys key1 [key2...] left|right count | 给定多个列表key1 key2 判断key1是否为空,不为空弹出该key的元素,为空直到找到不为空的key弹出对应的元素。 |
lrem key count value
LREM
是 Redis 中的一个命令,用于从列表中移除指定数量的、与指定值相等的元素。以下是关于 LREM
命令的详细说明:
命令语法:
lrem key count value
key
:列表的键名。count
:要移除的元素数量。这个参数有几个可能的值:
count
> 0,则从头向尾搜索并移除等于 value
的元素,直到移除了 count
个。count
< 0,则从尾向头搜索并移除等于 value
的元素,直到移除了 abs(count)
个。count
= 0,则移除列表中所有等于 value
的元素。value
:要移除的元素的值。返回值:
ltrim key count value
ltrim
命令在 Redis
中并不是通过 key count value
这样的参数来使用的。LTRIM
命令用于对列表进行裁剪,保留指定范围内的元素,而不需要指定一个具体的值。命令语法:
LTRIM key start stop
key
:列表的键名。start
和 stop
:要保留的元素的索引范围。索引从 0
开始。例如,0
表示列表的第一个元素,-1
表示列表的最后一个元素,-2
表示倒数第二个元素,依此类推。示例:
假设我们有一个名为 mylist
的 Redis 列表,它包含以下元素:
redis-cli RPUSH mylist 1 2 3 4 5
此时,mylist
的内容为 [1, 2, 3, 4, 5]
。
如果我们想要保留索引从 1
到 3
(包含)的元素(即 [2, 3, 4]
),我们可以这样做:
redis-cli LTRIM mylist 1 3
执行后,mylist
的内容将变为 [2, 3, 4]
。
请注意,如果 start
的值大于列表的实际长度,或者 start
大于 stop
,则列表将被清空。
例如,如果我们执行以下命令:
redis-cli LTRIM mylist 10 15
由于列表 mylist
只有 5 个元素,索引从 0
到 4
,所以执行上述命令后,mylist
将被清空。
另外,如果你之前提到的 lrem key count value
是一个误解或笔误,请忽略,因为我已经在之前的回答中解释了 LREM
命令的用法。
blpop key1 [key2...] timeout
BLPOP
是 Redis
中的一个命令,用于从列表的左侧移除并获取一个或多个列表中的第一个元素,如果列表为空,则阻塞等待直到有元素可获取或者超过指定的超时时间。命令语法:
blpop key1 [key2 ...] timeout
key1 [key2 ...]
:一个或多个列表的键名。BLPOP
会按照给定的 key
顺序检查列表,并在找到第一个非空列表时从中弹出一个元素。timeout
:阻塞等待的时间(以秒为单位),或者为 0
表示永远阻塞。返回值:
timeout
秒内找到了一个非空列表并成功弹出元素,则返回包含两个元素的列表:第一个元素是被弹出元素的列表名,第二个元素是被弹出的元素值。timeout
秒内没有找到任何非空列表,则返回 nil
。示例:
假设我们有两个列表 list1
和 list2
,它们的内容分别为:
redis-cli RPUSH list1 a b c
redis-cli RPUSH list2 x y z
此时,list1
的内容为 [a, b, c]
,list2
的内容为 [x, y, z]
。
如果我们执行以下命令:
redis-cli BLPOP list1 list2 5
因为 list1
是非空的,所以 BLPOP
会立即返回 list1
的第一个元素 a
,并同时从 list1
中移除该元素。返回的结果将是:
1) "list1"
2) "a"
如果我们再次执行相同的命令(此时 list1
的内容为 [b, c]
),BLPOP
仍然会立即返回 list1
的第一个元素 b
。
但是,如果我们清空 list1
和 list2
,并尝试执行以下命令:
redis-cli BLPOP list1 list2 5
由于两个列表都是空的,BLPOP
会阻塞等待,直到有元素被添加到其中一个列表,或者超过 5 秒的超时时间。如果 5 秒内没有任何变化,则返回 nil
。
BLPOP
常用于实现队列(queue)或任务列表(task list)等需要按照顺序处理元素的应用场景。
brpoplpush source destination timeout
BRPOPLPUSH
是 Redis 中的一个命令,它是 RPOPLPUSH
的阻塞版本。这个命令主要用于从一个列表(source)的尾部弹出一个元素,并将其推送到另一个列表(destination)的头部。如果 source 列表为空,Redis 会阻塞这个连接,直到另一个客户端 push 元素进入 source 列表,或者达到指定的超时时间(timeout)。
以下是关于 BRPOPLPUSH
命令的详细解释:
BRPOPLPUSH source destination timeout
source
:要弹出最后一个元素的列表的键名。destination
:要将弹出的元素插入的列表的键名。timeout
:超时时间(以秒为单位)。设置为 0 表示无限期阻塞。nil
和等待时长(以秒为单位)。source
列表在调用命令时不存在或为空,Redis 会阻塞客户端连接,直到 source
列表中有元素可用或超时。source
和 destination
是同一个列表,这个命令可以看作是列表的翻转操作,将尾部元素移动到头部。timeout
参数允许你指定一个最大等待时间。如果在这个时间内没有元素被弹出,命令将返回 nil
和等待时长。BRPOPLPUSH
命令的时间复杂度为 O(1),因为它只涉及常数时间的操作。假设我们有两个列表 list1
和 list2
,其中 list1
为空,list2
包含一些元素。如果我们执行以下命令:
redis-cli BRPOPLPUSH list1 list2 10
Redis 会阻塞这个连接,等待 list1
中有元素被 push,或者等待 10 秒超时。因为 list1
为空且没有新元素被 push 进去,所以这个命令在 10 秒后将返回一个 nil
和等待时长 10.xx
秒。
如果我们在另一个客户端中向 list1
push 一个元素,比如 a
,那么上述被阻塞的 BRPOPLPUSH
命令会立即返回,并将 a
插入到 list2
的头部,同时从 list1
中移除 a
。返回的值将是 a
。
rpoplpush source destination
RPOPLPUSH
是 Redis
中的一个命令,它从一个列表(source)的尾部移除并获取一个元素,然后将这个元素推送到另一个列表(destination)的头部。这个命令是一个原子操作,即它在执行过程中不会被其他命令打断。RPOPLPUSH source destination
source
:要弹出最后一个元素的列表的键名。destination
:要将弹出的元素插入的列表的键名。source
列表不为空,命令将返回被弹出元素的值。source
列表为空,命令将返回 nil
。假设我们有两个列表 list1
和 list2
,其中 list1
包含一些元素,而 list2
为空或包含其他元素。如果我们执行以下命令:
redis-cli RPOPLPUSH list1 list2
Redis 会从 list1
的尾部弹出一个元素,并将其推送到 list2
的头部。如果 list1
不为空,这个命令将返回被弹出元素的值;如果 list1
为空,这个命令将返回 nil
。
RPOPLPUSH
命令通常用于实现消息队列或任务队列的场景。例如,你可以将待处理的任务推送到一个列表(例如 tasks
),并使用多个工作进程或线程来消费这些任务。每个工作进程或线程可以使用 BRPOPLPUSH
(阻塞版本的 RPOPLPUSH
)或 RPOPLPUSH
来从 tasks
列表中获取任务,并在处理完任务后将结果推送到另一个列表(例如 results
)。这样可以确保任务的处理是顺序的,并且可以在多个工作进程或线程之间平衡负载。
lmove source destination left|right left|right
LMOVE
是 Redis
中的一个命令,用于从一个列表(source)中移除一个元素,并将其推送到另一个列表(destination)中。该命令允许指定元素是从列表的左侧还是右侧移除,并指定推送到目标列表的左侧还是右侧。
LMOVE source destination LEFT|RIGHT LEFT|RIGHT
source
:源列表的键名。destination
:目标列表的键名。LEFT|RIGHT
:指定从源列表中移除元素的位置(LEFT 表示左侧,RIGHT 表示右侧)。LEFT|RIGHT
:指定将元素推送到目标列表的位置(LEFT 表示左侧,RIGHT 表示右侧)。假设我们有以下两个列表:
source
列表成员为:a, b, c
destination
列表成员为:x, y, z
如果我们执行以下命令:
redis-cli LMOVE source destination RIGHT LEFT
那么执行后的结果将是:
source
列表成员变为:a, b
destination
列表成员变为:c, x, y, z
在这个例子中,我们从 source
列表的右侧(RIGHT)移除了元素 c
,并将其推送到了 destination
列表的左侧(LEFT)。
source
列表不存在,LMOVE
命令将返回 nil
并且不会执行任何操作。source
和 destination
列表相同,并且指定的移除和推送位置也相同(例如 LMOVE mylist mylist RIGHT RIGHT
),则这个命令相当于在列表内部移动元素,即实现列表的循环。source
列表为空,则 LMOVE
命令同样会返回 nil
并且不会执行任何操作。nil
。LMOVE
命令提供了在 Redis 中从一个列表移除元素并将其推送到另一个列表的功能,同时允许指定移除和推送的位置。这使得在处理列表数据时具有更大的灵活性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。