Commit Graph

210 Commits

Author SHA1 Message Date
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
Kirill Motkov eca4e5d04c Some code improvements
* Rewrite if-else chain as a switch.
* Rewrite switch statement with only one case as if.
* Remove always true condition.
* Simplify some functions.
2019-04-17 16:14:30 +03:00
Vladimir Mihailenco b706478fdc Fix MinIdleConns and MaxConnAge 2019-03-25 13:02:31 +02:00
Vladimir Mihailenco 9409a4baf0 Remove limiter copy 2018-12-13 10:31:02 +02:00
Vladimir Mihailenco 1d1269e0cf
Merge pull request #884 from go-redis/feature/limiter
Add Limiter interface
2018-11-29 11:21:03 +02:00
Vladimir Mihailenco 5d8c5c5c37 Add Limiter interface 2018-11-29 09:52:49 +02:00
Rob McColl a47799f02c
doc: add info about Receive call after Subscribe 2018-11-27 16:13:30 -05:00
Vladimir Mihailenco fa76dd0e87 Add releaseConnStrict 2018-10-14 11:27:34 +03:00
Andrii Kushch dc24d98c71 remove redundant expression 2018-10-11 12:53:40 +02:00
Vladimir Mihailenco 40dbb03d62 Set cmd timeout when Block >= 0 2018-09-13 09:28:01 +03:00
Vladimir Mihailenco 0197108027 Use bufio.Writer 2018-08-17 14:14:02 +03:00
Vladimir Mihailenco 5146fb0c57 Cleanup buffers manipulation 2018-08-15 11:53:15 +03:00
Vladimir Mihailenco 7c26d1ceb6 Pass cn.Rd where possible 2018-08-15 09:38:58 +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 b92dacbfa7 Conn timeout should be higher than read timeout 2018-07-22 08:49:48 +03:00
Vladimir Mihailenco faf5666fbd Cleanup pool 2018-05-29 17:29:47 +03:00
Vladimir Mihailenco 20363d149b Fix WithContext followed by WrapProcess 2018-03-13 15:51:38 +02:00
Vladimir Mihailenco d6cb688ea7 Cleanup context implementation 2018-03-07 13:50:14 +02:00
Vladimir Mihailenco 3a38e90858 Require Go 1.7+ and use context.Context 2018-03-07 13:43:52 +02:00
Vladimir Mihailenco f13fc5381c Extract commands info cache 2018-03-07 12:09:45 +02:00
Vladimir Mihailenco 56dea1f39a Fix proto.RedisError in slices 2018-02-22 14:24:27 +02:00
yifei.huang 8b4fa6d443 Add WrapProcessPipeline 2018-01-30 16:47:29 +02:00
Veselkov Konstantin ea4d6c3490 golint warnings are removed 2018-01-24 22:38:47 +04:00
Vladimir Mihailenco 624096af5e Mention redis.Nil 2017-12-27 13:29:46 +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 f9307ab2fe Add TxPipeline to Cmdable 2017-09-25 11:48:44 +03:00
Vladimir Mihailenco 09176ef4fa PoolStats is an alias for pool.Stats 2017-09-11 10:12:00 +03:00
Vladimir Mihailenco 5294b5dae1 Add PoolStats.StaleConns and enable logging by default 2017-09-11 09:10:17 +03:00
Vladimir Mihailenco dbd2c99ba9 Rework pipeline retrying 2017-09-01 14:56:00 +03:00
wenjun.yan 4e1d2a01db Make readOnly a private field so that only cluster client can use it 2017-07-25 10:35:41 +09:00
Vladimir Mihailenco 3ddda73a05 Close connections to unused nodes 2017-07-11 11:19:40 +03:00
Vladimir Mihailenco 6060f097e1 Add PubSub support to Cluster client 2017-07-09 10:07:20 +03:00
Vladimir Mihailenco 167410bcd7 Improve comment 2017-06-17 12:43:19 +03:00
Vladimir Mihailenco ee42c3d5d3 Merge pull request #571 from go-redis/fix/on-connect
Fix/on connect
2017-05-26 14:56:40 +03:00
Vladimir Mihailenco 4a3a300665 Add Options.OnConnect 2017-05-26 14:56:18 +03:00
Jonathan Chan 406e882c43 Added backoff retry 2017-05-26 14:33:34 +03:00
Vladimir Mihailenco 7e8890b644 Embed Cmdable into StatefulCmdable 2017-05-25 13:38:04 +03:00
Felipe Cavalcanti 7379f211a4 Client TxPipeline method should also return a Pipeliner 2017-05-03 10:48:12 -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 7646d48e29 Initialize PubSub connection 2017-04-18 13:12:38 +03:00
Vladimir Mihailenco 6499563e07 PubSub conns don't share connection pool limit 2017-04-17 16:59:56 +03:00
shaoguang d910e51498 pipelineReadCmds always retry=true, maybe bug 2017-04-12 20:11:20 +08:00
Vladimir Mihailenco 8d52a95269 Simplify PubSub API 2017-04-11 16:53:55 +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 ce4fd8b677 Fix ReceiveMessage to work without any subscriptions. 2017-02-08 14:15:32 +02:00
Sukharev Maxim b9ab636be4 Context methods only for go1.7+ 2017-01-16 09:57:49 +07:00
Sukharev Maxim 2f247ebe83 Clone and WithContext #471 2017-01-11 10:32:10 +07:00
Vladimir Mihailenco 9556378547 Fix Client process instrumentation. 2016-12-30 12:58:04 +02:00
Vladimir Mihailenco c939d2283e Allow creating PubSub without channels. 2016-12-22 13:26:00 +02:00
Vladimir Mihailenco 4ba635e15f Add func doc. 2016-12-16 14:19:53 +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 d4a3b1f282 Add instrumentation example. 2016-11-26 10:33:06 +02:00
Vladimir Mihailenco 8558a92fa4 Retry multiple commands more conservatively. 2016-10-13 13:56:24 +03:00
Dimitrij Denissenko e6d4f5bd38 Remove static import 2016-10-12 13:11:09 +01:00
Vladimir Mihailenco 2c5b239ecb Remove internal errors package that clashes with std lib. 2016-10-09 11:44:31 +00:00
Vladimir Mihailenco f5245efa73 Prepare v5 release. 2016-10-09 10:56:53 +00:00
yyoshiki41 84ae986659 Remove Addr field from clusterNode 2016-10-06 05:24:28 +09: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 4210c090b1 Move Publish channel to cmdable. Remove method that was deprecated in v3. 2016-07-21 13:04:40 +00:00
Dimitrij Denissenko 7d856c5595 Make proto/parser an internal package 2016-07-02 13:52:10 +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
Vladimir Mihailenco e9233d8d17 Cleanup loggers. 2016-06-05 08:05:50 +00:00
Joris Minjat 487feebef1 Add latency based routing to Redis Cluster client. 2016-05-23 12:49:55 +03:00
Dimitrij Denissenko 7456a0e473 Add scan iterator. 2016-04-26 15:01:49 +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 d79074eadb Remove PMessage. 2016-04-09 11:51:13 +03:00
Vladimir Mihailenco 3b051d2374 Reuse single Pipeline type in Client, ClusterClient and Ring. 2016-04-09 10:47:15 +03:00
Vladimir Mihailenco ebbeb40416 Disable logging by default. 2016-04-06 13:19:00 +03:00
Vladimir Mihailenco b9c6dcef57 Merge pull request #290 from go-redis/fix/error-handling
Cleanup error handling code.
2016-03-20 11:06:51 +03:00
Vladimir Mihailenco 30ce5ebd57 Cleanup error handling code. 2016-03-19 16:33:14 +02:00
Vladimir Mihailenco d802f0e8bd Remove unneeded synchronization. 2016-03-19 16:10:34 +02: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 fdd0fdf678 Optimize pool.Remove. 2016-03-12 12:41:02 +02:00
Vladimir Mihailenco ad0739be99 Extract pool package. Add pool benchmark. 2016-03-12 10:52:13 +02:00
Vladimir Mihailenco 27635bbe4e Fix FailoverClient to close connection to Sentinel. Fixes races build. 2016-03-09 15:14:01 +02:00
Vladimir Mihailenco 673e999431 Close connection on network timeout. 2016-03-09 14:36:14 +02:00
Dimitrij Denissenko 9f40911f28 Correct method accessors 2016-03-09 09:49:05 +00:00
Vladimir Mihailenco 73ad84252c Use package logger. 2016-03-02 13:37:28 +02:00
Vladimir Mihailenco 110e93a8e4 Simplify connection management with sticky connection pool. Fixes #260. 2016-03-01 14:12:25 +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
Vladimir Mihailenco 6c7b789b3a Tweak pool stats. 2016-01-25 15:57:09 +02:00