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