Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis EVAL per event或EVAL all events all once_Redis_Lua - Fatal编程技术网

Redis EVAL per event或EVAL all events all once

Redis EVAL per event或EVAL all events all once,redis,lua,Redis,Lua,如果每秒约有50个事件,则每个事件应以事务方式处理,并执行3次SADD操作,更好的方法是: 每个事件通过EVALSHA运行一个Lua脚本? 运行一个Lua脚本,该脚本将迭代所有事件并立即更新它们? 我的考虑:单个评估至少不会比每个事件的评估慢。主要原因是脚本执行时间。好吧,它可以阻止所有Redis命名空间的所有操作。但是我想我不应该害怕一次评估中有150个SADD操作,对吗?您最好对您的生产环境进行一些基准测试,尽管我认为150个操作太多,暂时无法阻止Redis 事实上,您还有另一种选择:在一个

如果每秒约有50个事件,则每个事件应以事务方式处理,并执行3次SADD操作,更好的方法是:

每个事件通过EVALSHA运行一个Lua脚本? 运行一个Lua脚本,该脚本将迭代所有事件并立即更新它们?
我的考虑:单个评估至少不会比每个事件的评估慢。主要原因是脚本执行时间。好吧,它可以阻止所有Redis命名空间的所有操作。但是我想我不应该害怕一次评估中有150个SADD操作,对吗?

您最好对您的生产环境进行一些基准测试,尽管我认为150个操作太多,暂时无法阻止Redis

事实上,您还有另一种选择:在一个数据库中运行50个Lua脚本。使用pipeline,您的每个Lua脚本不会长时间阻止Redis,即仅3次操作,并且它节省了大量RTT,应该比50个EVALSHA命令快得多