why evalsha can not improve performance for hmincryby

10 views
Skip to first unread message

一见

unread,
Feb 10, 2017, 5:31:35 AM2/10/17
to Redis DB

Need atomic multi hincryby by lua scripts.

evalsha slower than eval:


EVAL:
local r0;r0=redis.call('hincrby','r3c_eval_4','0','0');local r1;r1=redis.call('hincrby','r3c_eval_4','1','1');local r2;r2=redis.call('hincrby','r3c_eval_4','2','2');local r3;r3=redis.call('hincrby','r3c_eval_4','3','3');local r4;r4=redis.call('hincrby','r3c_eval_4','4','4');local r5;r5=redis.call('hincrby','r3c_eval_4','5','5');local r6;r6=redis.call('hincrby','r3c_eval_4','6','6');local r7;r7=redis.call('hincrby','r3c_eval_4','7','7');local r8;r8=redis.call('hincrby','r3c_eval_4','8','8');local r9;r9=redis.call('hincrby','r3c_eval_4','9','9');return {r0,r1,r2,r3,r4,r5,r6,r7,r8,r9}


EVALSHA:
local r0;r0=redis.call('hincrby',KEYS[1],ARGV[1],ARGV[2]);local r1;r1=redis.call('hincrby',KEYS[1],ARGV[3],ARGV[4]);local r2;r2=redis.call('hincrby',KEYS[1],ARGV[5],ARGV[6]);local r3;r3=redis.call('hincrby',KEYS[1],ARGV[7],ARGV[8]);local r4;r4=redis.call('hincrby',KEYS[1],ARGV[9],ARGV[10]);local r5;r5=redis.call('hincrby',KEYS[1],ARGV[11],ARGV[12]);local r6;r6=redis.call('hincrby',KEYS[1],ARGV[13],ARGV[14]);local r7;r7=redis.call('hincrby',KEYS[1],ARGV[15],ARGV[16]);local r8;r8=redis.call('hincrby',KEYS[1],ARGV[17],ARGV[18]);local r9;r9=redis.call('hincrby',KEYS[1],ARGV[19],ARGV[20]);return {r0,r1,r2,r3,r4,r5,r6,r7,r8,r9}

Reply all
Reply to author
Forward
0 new messages