2
A
回答
6
没有解决方法,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'
以上诉诸全面比较只有在列表是不同的大小和它们的末端(这是廉价获取)的脚本是相同的。
+0
以下情况失败,redis.call('LRANGE',KEYS [1],0,0) == redis.call('LRANGE',KEYS [2],0,0)和 redis.call('LRANGE',KEYS [1], - 1,-1)== redis.call('LRANGE', KEYS [2], - 1,-1)。 如果我排除这些检查,它将按我的预期工作。 – sprabhakaran
+1
对不起,我忘了LRANGE返回一个表格。修正了我的脚本,所以它会工作。 –
相关问题
- 1. 检查两个列表相等
- 2. 如何检查两个匹配列表
- 3. 如何在Mysql中检查不等于?
- 4. 检查,以查看在两个列表
- 5. Sqlite - 查询1列在两个相同的表中,其中列等于值
- 6. 检查是否在MySQL表中的两列相等太慢
- 7. 如何检查两列并在存在时查询每个表?
- 8. Python的检查jsons的两个列表是相等的
- 9. 如何检查列表中的每个元素是否相等?
- 10. 如何检查列表中的多个元素是否等于变量?
- 11. 检查两个表是否相等
- 12. 如何检查两个值是否与JavaScript不等于null?
- 13. 检查列表中是否存在一个值Redis
- 14. 在WolframCloud中检查两个表达式的相等性
- 15. 如何检查,如果事情等于任何值的列表在C#
- 16. Pythonic的方式来检查是否两个列表的列表是相等的
- 17. 如何检查两个列表整数之间的差异是否大于或等于2?
- 18. 不等于两个通用列表
- 19. 加入两个列表比等于
- 20. 在AS3中,如何检查两个JSON对象是否相等?
- 21. 如何在JSP中检查两个字符串是否相等?
- 22. 如何检查两个json对象在java中是否相等?
- 23. 如何检查xml列表中的两个代码?
- 24. 如何检查列表中的两个数字是否相同
- 25. 检查一个元素是否等于OCaml中列表中的任何元素?
- 26. 在排序一个列表中的元素后检查两个列表中的命令相等
- 27. 如何检查散列中的密钥是否存在(redis)?
- 28. 如何在两个链表中查找最新的等元素?
- 29. 检查两个数字列表是否相等
- 30. 查询用于检查相同的值两者的表中,在存在如何将两个查询
看看http://stackoverflow.com/questions/41651597/redis-diff-between-two-lists –