没有解决方法,Redis没有列表(或其他数据类型)的摘要功能,因为这些是双重链接,除了逐个元素之外没有其他方法可以比较它们.
但是,您可以在Lua中进行比较,以使其与在客户端执行相比更高效.像下面这样的东西应该工作:
if redis.call('LLEN',KEYS[1]) == redis.call('LLEN',KEYS[2]) and
redis.call('LRANGE',KEYS[1],0,0)[1] == redis.call('LRANGE',KEYS[2],0,0)[1] and
redis.call('LRANGE',KEYS[1],-1,-1)[1] == redis.call('LRANGE',KEYS[2],-1,-1)[1] and
redis.call('DUMP',KEYS[1]) == redis.call('DUMP',KEYS[2]) then
return 'Lists are the same'
end
return 'Lists are not the same'
Run Code Online (Sandbox Code Playgroud)
只有当列表具有不同的大小并且它们的结尾(获取起来便宜)相同时,上述脚本才会进行完全比较.
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |