Working with a redis cluster:
$ redis-cli -h 10.16.44.71 CLUSTER NODES
939da3d4429964a27e612dd137d6f346d4458eed 10.16.44.73:6379 master - 0 1474635829855 11 connected 8192-12287 15018-16383
93488ba13194d9e5b6049a8d16207a9fa5ec141b 10.16.44.72:6379 master - 0 1474635832865 10 connected 4096-8191 13653-15017
bc23acb75ee40e826555c870488f2f9d19e7f8c6 10.16.44.76:6379 slave 939da3d4429964a27e612dd137d6f346d4458eed 0 1474635827853 11 connected
3d4ad7129625207e13df9adb0a116830b9c60476 10.16.44.71:6379 myself,slave 939da3d4429964a27e612dd137d6f346d4458eed 0 0 8 connected
b4b846c726b896ed754745f059e9ab1771d42a4f 10.16.44.74:6379 slave 7cb86556c2101774d152cc5b68f199c784ded969 0 1474635830856 9 connected
4ba297090eb4a5025990883715e125adfe057e9e 10.16.44.75:6379 slave 93488ba13194d9e5b6049a8d16207a9fa5ec141b 0 1474635829855 10 connected
7cb86556c2101774d152cc5b68f199c784ded969 10.16.44.70:6379 master - 0 1474635832364 9 connected 0-4095 12288-13652
17b4484309b228a8db64e585ef3f69129f5a9367 10.16.44.69:6379 slave 7cb86556c2101774d152cc5b68f199c784ded969 0 1474635831861 9 connected
When a connection is set to READONLY and a script is run using EVAL the node returns the expected value:
$ redis-cli -h 10.16.44.71
10.16.44.71:6379> READONLY
OK
10.16.44.71:6379> EVAL "redis.call(\"READONLY\")\nreturn redis.call(\"EXISTS\", \"esm-user-{wh2iBzMJetBmivzCxNnAvArI}-visits\")" 0
(integer) 1
When the key is passed in, the node unexpectedly returns MOVED with the master's address:
10.16.44.71:6379> EVAL "redis.call(\"READONLY\")\nreturn redis.call(\"EXISTS\", KEYS[1])" 1 esm-user-{wh2iBzMJetBmivzCxNnAvArI}-visits
(error) MOVED 9768 10.16.44.73:6379
Since READONLY is set on both the connection to the slave node and within the script, I would expect that running the script would return 1 instead of MOVED.
Comment From: long-xuan-nguyen
I am seeing this issue too. Does running readonly Lua script on slaves supported at all by Redis?
%%./redis-cli -h 172.22.11.197 172.22.11.197:6379> readonly OK 172.22.11.197:6379> zcard 3 (integer) 0 172.22.11.197:6379> eval "return redis.call(\"ZCARD\", KEYS[1])" 1 3 (error) MOVED 1584 172.23.219.211:6379 172.22.11.197:6379>
Comment From: shaylevi2
Anything new about this one?
Is it solved?
It's been Urgent since December 2016
Comment From: orhanveliesen
Anything?
Comment From: antirez
Fixed some time ago.