List 我可以将redis数据结构列表更改为设置吗
我使用redis列表结构来存储数据,但现在我想将列表类型更改为set。是否有此命令?没有内置的方法。您需要手动从列表中获取项目并插入到集合中。如果列表较小,则可以使用以下lua脚本:List 我可以将redis数据结构列表更改为设置吗,list,redis,set,List,Redis,Set,我使用redis列表结构来存储数据,但现在我想将列表类型更改为set。是否有此命令?没有内置的方法。您需要手动从列表中获取项目并插入到集合中。如果列表较小,则可以使用以下lua脚本: repeat local item = redis.call('lpop', KEYS[1]) if (item) then redis.call('sadd', KEYS[2], item) end until not item 但是,如果您的列表非常大,脚本将长时间阻止Redis。必须递增地将
repeat
local item = redis.call('lpop', KEYS[1])
if (item) then redis.call('sadd', KEYS[2], item) end
until not item
但是,如果您的列表非常大,脚本将长时间阻止Redis。必须递增地将项目从列表移动到设置:
LRANGE
从列表中获取一些项目(小批量)SADD
插入要设置的项目LTRIM
从列表中删除这些项目