Vladimir Mihailenco
512e6c7a40
Unexport Clone and Lock from embedded hooks
2020-02-12 13:02:09 +02:00
git-hulk
d52b11cb42
Exported the setErr function as public
2020-02-03 17:53:47 +08:00
Vladimir Mihailenco
152e52f203
Fix WithContext race
2019-08-24 12:40:23 +03:00
Vladimir Mihailenco
0c4c236793
Add RingOptions.OnNewShard
2019-08-23 14:46:40 +03:00
Vladimir Mihailenco
f6fc23d2fa
Move key to ZStore
2019-08-09 16:23:56 +03:00
Vladimir Mihailenco
2a46cb006d
Add withConn and set cmd errors more consistently
2019-08-09 13:53:05 +03:00
Vladimir Mihailenco
7779accbea
Use semantic import versioning
2019-08-08 14:29:44 +03:00
Vladimir Mihailenco
48224a399f
Remove releaseConnStrict
2019-08-08 11:44:55 +03:00
Vladimir Mihailenco
4e9cea8876
Add proper SingleConnPool implementation
2019-08-03 17:31:28 +03:00
Vladimir Mihailenco
c837612911
Cancel sleep when context is cancelled
2019-07-30 12:13:00 +03:00
Vladimir Mihailenco
f3ce3362a0
Add golangci-lint
2019-07-25 14:36:50 +03:00
Vladimir Mihailenco
52ec525849
Propagate context in Pipeline
2019-07-25 13:28:15 +03:00
Vladimir Mihailenco
9d9e126af0
Implement TxPipeline for Ring
2019-07-19 12:00:11 +03:00
Michael Benford
9169633580
Add support for individual passwords for ring shards
2019-07-17 11:31:42 -03:00
Vladimir Mihailenco
2cbb5194fb
Fix WithContext and add tests
2019-07-04 11:57:54 +03:00
Vladimir Mihailenco
3bdf64784a
Cleanup
2019-06-17 12:32:40 +03:00
Vladimir Mihailenco
5460bc10f2
Use Context.Deadline to set net.Conn deadline
2019-06-08 15:02:51 +03:00
Vladimir Mihailenco
53c8a4a6b7
Pass context to Dialer
2019-06-04 14:26:26 +03:00
Vladimir Mihailenco
09eb108738
Allow passing context where possible
2019-06-04 13:30:47 +03:00
Vladimir Mihailenco
84422d7ae7
Speedup WithContext
2019-05-31 17:31:54 +03:00
Vladimir Mihailenco
8476dfea4a
Replace Wrap* with hooks that support context
2019-05-31 16:36:57 +03:00
Andrea Spacca
97e6ed8178
Ring instrumentantions ( #1017 )
...
* Ring instrumentantions
2019-04-24 09:33:36 +03:00
Vladimir Mihailenco
a46b053aa6
More granular locking
2019-04-22 12:50:13 +03:00
Andrea Spacca
be4c4f3f38
Ring Watch ( #1015 )
...
* Ring Watch
2019-04-22 12:48:06 +03:00
Vladimir Mihailenco
b665d8fcf2
Rename copy to clone
2019-03-05 16:10:34 +02:00
Yann Salaün
49e19d6805
Fix typos in Ring documentation
2019-01-31 22:24:44 +01:00
Vladimir Mihailenco
fa76dd0e87
Add releaseConnStrict
2018-10-14 11:27:34 +03:00
Vladimir Mihailenco
f7094544a5
Process pipeline commands concurrently
2018-09-11 13:30:51 +03:00
Vladimir Mihailenco
0e7099cf69
ring: retry commands
2018-09-07 11:45:56 +03:00
Vladimir Mihailenco
d5fc79d4ee
Add Client.Do
2018-08-12 11:20:24 +03:00
Vladimir Mihailenco
651e9fef1d
Add MaxConnAge
2018-08-12 10:25:16 +03:00
Vladimir Mihailenco
ea9da7c2e8
Rework ReceiveMessage
2018-07-23 17:10:58 +03:00
Vladimir Mihailenco
2559f32464
cluster: optimize newClusterState
2018-07-22 14:17:42 +03:00
Vladimir Mihailenco
493945402e
Merge pull request #812 from hyfrey/feature/ringhash
...
Hash function and nreplicas in consistent hash can be set in RingOptions
2018-07-22 11:08:38 +03:00
hyfrey
2a0840b680
Hash function and nreplicas used in consistent hash can be set in RingOptions
2018-07-19 18:11:09 +08:00
Vladimir Mihailenco
faf5666fbd
Cleanup pool
2018-05-29 17:29:47 +03:00
Vladimir Mihailenco
18b2e30835
Cleanup cmds info
2018-05-17 15:21:51 +03:00
Gabriel Aszalos
731dd72b84
{cluster,ring}: add support for context to ClusterClient and Ring
2018-03-07 14:41:18 +01:00
Vladimir Mihailenco
db04210af4
Extract ringShards
2018-03-07 14:18:24 +02:00
Vladimir Mihailenco
f13fc5381c
Extract commands info cache
2018-03-07 12:09:45 +02:00
yifei.huang
8b4fa6d443
Add WrapProcessPipeline
2018-01-30 16:47:29 +02:00
Vladimir Mihailenco
e5040d9ce7
Don't test in Go 1.4
2017-12-28 17:00:22 +02:00
Vladimir Mihailenco
3de5605ab2
Pick random node when command does not have keys
2017-12-28 16:47:08 +02:00
Vladimir Mihailenco
7cb146a31b
Increase read timeout for blocking commands and don't retry such commands
2017-09-29 16:12:43 +03:00
Vladimir Mihailenco
2a5293c99c
Export Cmder.Args
2017-09-26 11:29:22 +03:00
Vladimir Mihailenco
f9307ab2fe
Add TxPipeline to Cmdable
2017-09-25 11:48:44 +03:00
Vladimir Mihailenco
bc5f9a6878
Replace PoolStats.Requests with PoolStats.Misses
2017-09-22 12:28:08 +03:00
Vladimir Mihailenco
dbd2c99ba9
Rework pipeline retrying
2017-09-01 14:56:00 +03:00
Vladimir Mihailenco
6060f097e1
Add PubSub support to Cluster client
2017-07-09 10:07:20 +03:00
Vladimir Mihailenco
9dbcc5ae80
Vendor syncutil.Once
2017-07-01 12:51:46 +03:00
Vladimir Mihailenco
5132e15c93
Fix cmd info race. Fixes #578
2017-06-17 12:34:39 +03:00
Vladimir Mihailenco
4a3a300665
Add Options.OnConnect
2017-05-26 14:56:18 +03:00
Vladimir Mihailenco
7e8890b644
Embed Cmdable into StatefulCmdable
2017-05-25 13:38:04 +03:00
Vladimir Mihailenco
6307b95039
Export Cmder.Name
2017-05-09 12:45:30 +03:00
Felipe Cavalcanti
eeb4d09198
rename Pipelineable to Pipeliner
2017-05-02 12:00:53 -03:00
Felipe Cavalcanti
6fca4d5ad0
pipeline now has its own interface "Pipelineable"
2017-05-01 12:42:58 -03:00
Vladimir Mihailenco
9ebd89772a
Rework PubSub conn management
2017-04-24 13:41:03 +03:00
Vladimir Mihailenco
346c00d485
Add PubSub support to Ring
2017-04-11 17:29:31 +03:00
Poloskin Valentin Georgievich
80673992e6
gofmt
2017-04-02 17:10:47 +03:00
Vladimir Mihailenco
2cf5af9928
Merge branch 'v5'
2017-03-20 12:23:42 +02:00
Vladimir Mihailenco
ab1e8de9ea
Add ability to read client options
2017-03-20 12:15:21 +02:00
Vladimir Mihailenco
8040d63c4f
Remove gopkg.in
2017-02-19 09:49:21 +02:00
Vladimir Mihailenco
308ebee457
Fix defer order.
2017-01-28 10:53:10 +02:00
Vladimir Mihailenco
69554c0ec5
Reduce number of allocations.
2017-01-13 13:39:59 +02:00
Vladimir Mihailenco
6cd7a09b22
Use first slot/shard when key is not defined.
2016-12-16 14:30:23 +02:00
Vladimir Mihailenco
152cc1ee34
Merge pull request #444 from go-redis/feature/tx-pipeline
...
Add TxPipeline.
2016-12-16 11:40:46 +02:00
Vladimir Mihailenco
865d501d07
Add TxPipeline.
2016-12-16 11:25:58 +02:00
Vladimir Mihailenco
34122bffa8
Check that clients implement scripter interface.
2016-12-14 12:12:50 +02:00
Vladimir Mihailenco
b4efc45f1c
Set read/write timeouts more consistently.
2016-12-03 17:30:13 +02:00
Vladimir Mihailenco
82f21639bf
Fix WrapProcess for Ring and Cluster. Add better example.
2016-11-30 13:00:53 +02:00
Vladimir Mihailenco
8558a92fa4
Retry multiple commands more conservatively.
2016-10-13 13:56:24 +03:00
Vladimir Mihailenco
f5245efa73
Prepare v5 release.
2016-10-09 10:56:53 +00:00
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