1
0
mirror of https://github.com/redis/go-redis.git synced 2025-06-14 01:21:30 +03:00
Commit Graph

140 Commits

Author SHA1 Message Date
152cc1ee34 Merge pull request #444 from go-redis/feature/tx-pipeline
Add TxPipeline.
2016-12-16 11:40:46 +02:00
865d501d07 Add TxPipeline. 2016-12-16 11:25:58 +02:00
34122bffa8 Check that clients implement scripter interface. 2016-12-14 12:12:50 +02:00
b4efc45f1c Set read/write timeouts more consistently. 2016-12-03 17:30:13 +02:00
82f21639bf Fix WrapProcess for Ring and Cluster. Add better example. 2016-11-30 13:00:53 +02:00
8558a92fa4 Retry multiple commands more conservatively. 2016-10-13 13:56:24 +03:00
f5245efa73 Prepare v5 release. 2016-10-09 10:56:53 +00:00
eeba1d7db1 Select random node when there are no keys. 2016-10-09 10:30:45 +00:00
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
7cbee9d337 Enable reaper on ClusterClient and add tests. 2016-10-02 12:44:01 +00:00
e57ac63b6e Simplify resubscribing in PubSub. 2016-09-29 12:33:47 +00:00
0b706418d9 Add Pipeline to Cmdable. 2016-09-27 09:29:21 +00:00
66f2eb1584 ring: reduce HeartbeatFrequency. 2016-08-09 13:54:04 +00:00
261cf7ae70 Fix Del command case. 2016-07-08 09:30:38 +00:00
aa063fe0a2 Fix ring comments 2016-07-02 09:07:27 +01:00
1c4c05e970 Ensure to use pointer methods where appropriate. Tidy up godoc. 2016-07-01 13:25:28 +01:00
4761c24218 Add ForEachMaster API. 2016-06-17 12:09:38 +00:00
079b7ce393 Rework Options initialisation. 2016-06-05 11:10:30 +00:00
ac162eb843 Move Select to stateful commands and make it available only via Pipeline and Tx. 2016-06-05 09:45:39 +00:00
487feebef1 Add latency based routing to Redis Cluster client. 2016-05-23 12:49:55 +03:00
31abb18d9a Move logger to internal package. 2016-04-09 14:52:01 +03:00
38d30a4bab Use redis.v4 that is in alpha/beta state. 2016-04-09 13:27:16 +03:00
3b051d2374 Reuse single Pipeline type in Client, ClusterClient and Ring. 2016-04-09 10:47:15 +03:00
6e1aef39ea Faster and simpler pool. 2016-03-19 11:49:13 +02:00
707472c09b Fix connection initialization. 2016-03-15 14:21:53 +02:00
46790aa060 Add race test for big vals. Copy connection to avoid race with PubSub. 2016-03-14 16:34:15 +02:00
ad0739be99 Extract pool package. Add pool benchmark. 2016-03-12 10:52:13 +02:00
673e999431 Close connection on network timeout. 2016-03-09 14:36:14 +02:00
ebf51e1a1b Add prefix to package logger. 2016-02-06 12:16:09 +02:00
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
0bf3759a6d Create hashtag package. 2015-12-31 16:25:20 +02:00
98414ea72a Increase test timeout. 2015-11-21 10:20:01 +02:00
ade3425870 multi: fix recovering from bad connection. 2015-11-14 14:44:16 +02:00
c809246d8b Clarify thread safety. Fixes #166. 2015-09-12 09:36:03 +03:00
54dcf59909 ring: return an error in pipeline when all shards are down. 2015-07-13 12:56:16 +03:00
1608a33e55 ring: fix key hashing in Ring pipeline. 2015-06-24 15:37:41 +03:00
74f9f4f7a0 ring: ignore pool timeout when pinging shards. 2015-06-16 10:46:46 +03:00
0cf1b73698 Add RingPipeline. 2015-06-04 11:50:24 +03:00
2103d88732 Embed consistenthash package. 2015-06-03 14:25:52 +03:00
46f49a17a5 Add Redis Ring. 2015-06-03 14:25:52 +03:00