1
0
mirror of https://github.com/redis/go-redis.git synced 2025-04-25 04:02:31 +03:00

129 Commits

Author SHA1 Message Date
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