Vladimir Mihailenco
eeba1d7db1
Select random node when there are no keys.
2016-10-09 10:30:45 +00:00
Artem Chernyshev
03da66c18a
Add new parameter to the RingOptions to override CommandInfo first key
...
There is problem with `eval` and `evalsha` commands.
`COMMAND INFO eval` returns first key position equals `0`.
After that, redis ring chooses `eval` as a value for sharding.
They, if you try to delete created value, ring may choose another shard
and delete won't work.
Eval command should be parsed, to be sharded properly, according to
redis specs: http://redis.io/commands/command .
I've introduced a new flag in the `RingOptions`, which will enable new
behavior: `EnableKeyLocationParsing`.
If it is enabled, `cmdFirstKey` will try to get key position using
`cmd.getFirstKeyPos()`. This function is defined for `eval` and
`evalsha` commands.
If it has parameters, it will return `3`, otherwise it will return `0`.
2016-10-04 17:09:04 +03:00
Vladimir Mihailenco
7cbee9d337
Enable reaper on ClusterClient and add tests.
2016-10-02 12:44:01 +00:00
Vladimir Mihailenco
e57ac63b6e
Simplify resubscribing in PubSub.
2016-09-29 12:33:47 +00:00
Vladimir Mihailenco
0b706418d9
Add Pipeline to Cmdable.
2016-09-27 09:29:21 +00:00
Vladimir Mihailenco
66f2eb1584
ring: reduce HeartbeatFrequency.
2016-08-09 13:54:04 +00:00
Vladimir Mihailenco
261cf7ae70
Fix Del command case.
2016-07-08 09:30:38 +00:00
Dimitrij Denissenko
aa063fe0a2
Fix ring comments
2016-07-02 09:07:27 +01:00
Dimitrij Denissenko
1c4c05e970
Ensure to use pointer methods where appropriate. Tidy up godoc.
2016-07-01 13:25:28 +01:00
Vladimir Mihailenco
4761c24218
Add ForEachMaster API.
2016-06-17 12:09:38 +00:00
Vladimir Mihailenco
079b7ce393
Rework Options initialisation.
2016-06-05 11:10:30 +00:00
Vladimir Mihailenco
ac162eb843
Move Select to stateful commands and make it available only via Pipeline and Tx.
2016-06-05 09:45:39 +00:00
Joris Minjat
487feebef1
Add latency based routing to Redis Cluster client.
2016-05-23 12:49:55 +03:00
Vladimir Mihailenco
31abb18d9a
Move logger to internal package.
2016-04-09 14:52:01 +03:00
Vladimir Mihailenco
38d30a4bab
Use redis.v4 that is in alpha/beta state.
2016-04-09 13:27:16 +03:00
Vladimir Mihailenco
3b051d2374
Reuse single Pipeline type in Client, ClusterClient and Ring.
2016-04-09 10:47:15 +03:00
Vladimir Mihailenco
6e1aef39ea
Faster and simpler pool.
2016-03-19 11:49:13 +02:00
Vladimir Mihailenco
707472c09b
Fix connection initialization.
2016-03-15 14:21:53 +02:00
Vladimir Mihailenco
46790aa060
Add race test for big vals. Copy connection to avoid race with PubSub.
2016-03-14 16:34:15 +02:00
Vladimir Mihailenco
ad0739be99
Extract pool package. Add pool benchmark.
2016-03-12 10:52:13 +02:00
Vladimir Mihailenco
673e999431
Close connection on network timeout.
2016-03-09 14:36:14 +02:00
Vladimir Mihailenco
ebf51e1a1b
Add prefix to package logger.
2016-02-06 12:16:09 +02:00
Francisco Souza
d3ee281748
Declare and use a package-level Logger
...
This allow users of the API to override the Logger. Fix #250 .
2016-02-03 12:30:39 -05:00
Anatolii Mihailenco
0bf3759a6d
Create hashtag package.
2015-12-31 16:25:20 +02:00
Vladimir Mihailenco
98414ea72a
Increase test timeout.
2015-11-21 10:20:01 +02:00
Vladimir Mihailenco
ade3425870
multi: fix recovering from bad connection.
2015-11-14 14:44:16 +02:00
Vladimir Mihailenco
c809246d8b
Clarify thread safety. Fixes #166 .
2015-09-12 09:36:03 +03:00
Vladimir Mihailenco
54dcf59909
ring: return an error in pipeline when all shards are down.
2015-07-13 12:56:16 +03:00
Vladimir Mihailenco
1608a33e55
ring: fix key hashing in Ring pipeline.
2015-06-24 15:37:41 +03:00
Vladimir Mihailenco
74f9f4f7a0
ring: ignore pool timeout when pinging shards.
2015-06-16 10:46:46 +03:00
Vladimir Mihailenco
0cf1b73698
Add RingPipeline.
2015-06-04 11:50:24 +03:00
Vladimir Mihailenco
2103d88732
Embed consistenthash package.
2015-06-03 14:25:52 +03:00
Vladimir Mihailenco
46f49a17a5
Add Redis Ring.
2015-06-03 14:25:52 +03:00