Vladimir Mihailenco
|
ef3e0e9827
|
Merge pull request #839 from go-redis/fix/cluster-loopback-fix
Fix cluster loopback handling. Fixes #589
|
2018-08-15 08:52:04 +03:00 |
Vladimir Mihailenco
|
0d132966a4
|
Add missing options to UniversalOptions
|
2018-08-15 08:44:06 +03:00 |
Vladimir Mihailenco
|
c1c2753ae8
|
Fix cluster loopback handling. Fixes #589
|
2018-08-14 15:57:17 +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
|
b576fe91a1
|
Use single read and write buffer where possible
|
2018-08-04 13:09:22 +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
|
b92dacbfa7
|
Conn timeout should be higher than read timeout
|
2018-07-22 08:49:48 +03:00 |
Vladimir Mihailenco
|
ee41b90923
|
Improve docs
|
2018-07-18 15:28:51 +03:00 |
Vladimir Mihailenco
|
1f59be5cc0
|
cluster: add manual setup
|
2018-06-29 10:46:12 +03:00 |
Vladimir Mihailenco
|
bdf8f06904
|
cluster: preload commands info
|
2018-06-18 12:55:26 +03:00 |
Puneeth Gadangi
|
0269263441
|
Use cmdSlotAndNode() to route read-only ClusterClient pipeline commands
|
2018-05-31 17:04:36 -07:00 |
Vladimir Mihailenco
|
4237a34c31
|
cluster: fix origin addr check
|
2018-05-31 10:25:40 +03:00 |
Vladimir Mihailenco
|
faf5666fbd
|
Cleanup pool
|
2018-05-29 17:29:47 +03:00 |
Nathan Ziebart
|
d790448589
|
reset cmdable.process when copying cluster client
|
2018-05-23 17:30:50 -07:00 |
Jeffrey Hutchins
|
471caa3d91
|
cluster: reload state for ForEach functions and every 1 minute
|
2018-05-21 16:40:06 +03:00 |
Vladimir Mihailenco
|
5c742fff78
|
cluster: cleanup tests
|
2018-05-21 16:17:57 +03:00 |
Vladimir Mihailenco
|
18b2e30835
|
Cleanup cmds info
|
2018-05-17 15:21:51 +03:00 |
Vladimir Mihailenco
|
092971361b
|
cluster: retry same node on retryable error
|
2018-05-17 15:02:35 +03:00 |
Vladimir Mihailenco
|
34facee367
|
Add more race tests
|
2018-05-17 14:55:00 +03:00 |
Vadim Liman
|
09b9a99666
|
Add TLS configuration support for Universal Client
|
2018-05-11 09:46:09 +03:00 |
superkinglabs
|
877867d284
|
Remove costly 'appendIfNotExists' and 'remove' call from PubSub (#743)
* remove costly 'appendIfNotExists' and 'remove' call from pubsub
|
2018-03-14 12:42:51 +02:00 |
Gabriel Aszalos
|
731dd72b84
|
{cluster,ring}: add support for context to ClusterClient and Ring
|
2018-03-07 14:41:18 +01:00 |
Vladimir Mihailenco
|
4fe9f93940
|
Re-order atomic field to please race detector
|
2018-03-07 14:38:18 +02:00 |
Vladimir Mihailenco
|
d6cb688ea7
|
Cleanup context implementation
|
2018-03-07 13:50:14 +02:00 |
Vladimir Mihailenco
|
a64d3e1ef1
|
Fix build on 32bit arch
|
2018-03-07 12:41:11 +02:00 |
T. Thyer
|
063393987a
|
Add option to balance load between master node and replica nodes (#729)
* Add option to balance load between master node and replica nodes
|
2018-03-07 12:23:38 +02:00 |
Vladimir Mihailenco
|
5e72be1cbf
|
Extract clusterStateHolder
|
2018-03-07 12:09:45 +02:00 |
Vladimir Mihailenco
|
f13fc5381c
|
Extract commands info cache
|
2018-03-07 12:09:45 +02:00 |
Vladimir Mihailenco
|
68362cfda1
|
Fix doc
|
2018-02-27 16:11:25 +02:00 |
Vladimir Mihailenco
|
cac7aa8c36
|
Reduce ClusterOptions.MaxRedirects from 16 to 8
|
2018-02-27 16:10:17 +02:00 |
Vladimir Mihailenco
|
cc47cf2439
|
Use fresh cluster state after sleeping
|
2018-02-27 16:10:17 +02:00 |
Vladimir Mihailenco
|
9df09066e2
|
Store all created cluster nodes in allNodes
|
2018-02-27 14:48:59 +02:00 |
Vladimir Mihailenco
|
fa7f64f7f2
|
Rework retrying
|
2018-02-16 13:40:23 +02:00 |
Vladimir Mihailenco
|
1a4d34448d
|
Update cluster node latency asynchronously
|
2018-02-13 11:42:06 +02:00 |
yifei.huang
|
8b4fa6d443
|
Add WrapProcessPipeline
|
2018-01-30 16:47:29 +02:00 |
Vladimir Mihailenco
|
a84876237b
|
Retry if node is closed; close nodes with delay
|
2018-01-17 13:00:11 +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
|
5294b5dae1
|
Add PoolStats.StaleConns and enable logging by default
|
2017-09-11 09:10:17 +03:00 |
Vladimir Mihailenco
|
1173a9589f
|
Cleanup code
|
2017-09-11 08:58:56 +03:00 |
Vladimir Mihailenco
|
dbd2c99ba9
|
Rework pipeline retrying
|
2017-09-01 14:56:00 +03:00 |
Vladimir Mihailenco
|
63e3bc58c7
|
Retry cluster down errors
|
2017-08-15 10:12:43 +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
|
9dbcc5ae80
|
Vendor syncutil.Once
|
2017-07-01 12:51:46 +03:00 |
Dimitrij Denissenko
|
94ea195dc1
|
Use node address instead of relying on loopback reported by redis
|
2017-07-01 12:31:41 +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 |
Yuval Pavel Zholkover
|
8c21ec0006
|
Fix typo in ClusterClient.TxPipelined()
It should be using ClusterClient.TxPipeline() and not ClusterClient.Pipeline().
|
2017-04-21 15:50:32 +03:00 |
Poloskin Valentin Georgievich
|
80673992e6
|
gofmt
|
2017-04-02 17:10:47 +03:00 |
Vladimir Mihailenco
|
ef95182d29
|
Code cleanup
|
2017-03-31 15:11:11 +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
|
f33571c93c
|
Merge branch 'v5'
|
2017-03-04 13:38:55 +02:00 |
Vladimir Mihailenco
|
15998effbe
|
Don't panic if cluster state is nil.
|
2017-03-04 13:27:34 +02:00 |
Dimitrij Denissenko
|
30412d7652
|
Added support for universal client
|
2017-02-20 10:46:22 +00:00 |
Vladimir Mihailenco
|
8040d63c4f
|
Remove gopkg.in
|
2017-02-19 09:49:21 +02:00 |
Vladimir Mihailenco
|
69554c0ec5
|
Reduce number of allocations.
|
2017-01-13 13:39:59 +02:00 |
Vladimir Mihailenco
|
cd7431c40a
|
Fix cluster pipeline tests.
|
2016-12-20 17:59:38 +02:00 |
Vladimir Mihailenco
|
b49d47eb4d
|
Merge pull request #449 from go-redis/fix/use-first-slot-when-there-are-no-keys
Use first slot/shard when key is not defined.
|
2016-12-16 15:38:35 +02:00 |
Vladimir Mihailenco
|
6cd7a09b22
|
Use first slot/shard when key is not defined.
|
2016-12-16 14:30:23 +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
|
c7dfbb54af
|
Fix nil ptr in case when all nodes are unavailable.
|
2016-12-12 17:30:08 +02:00 |
Vladimir Mihailenco
|
420337dc4a
|
Simplify cmdInfo check.
|
2016-12-09 15:52:36 +02:00 |
zezhou.yu
|
fb584d25db
|
fix cmdInfo nil pointer panic
|
2016-12-08 01:34:22 +08:00 |
Vladimir Mihailenco
|
b4efc45f1c
|
Set read/write timeouts more consistently.
|
2016-12-03 17:30:13 +02:00 |
Vladimir Mihailenco
|
83208a1d9b
|
Use consistent cluster state when executing pipeline.
|
2016-11-08 11:46:44 +02:00 |
Vladimir Mihailenco
|
8558a92fa4
|
Retry multiple commands more conservatively.
|
2016-10-13 13:56:24 +03:00 |
yyoshiki41
|
236c021d4c
|
simplify if condition
|
2016-10-13 17:27:43 +09:00 |
Vladimir Mihailenco
|
2c5b239ecb
|
Remove internal errors package that clashes with std lib.
|
2016-10-09 11:44:31 +00:00 |
Vladimir Mihailenco
|
639950777c
|
More cluster tests.
|
2016-10-09 11:27:38 +00: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 |
Vladimir Mihailenco
|
fcf53a2a78
|
Better cluster loading handling.
|
2016-10-09 08:18:57 +00:00 |
lijunfei
|
3cc9b99fb8
|
if readonly, read from master when slave is loading
|
2016-10-09 11:30:01 +08:00 |
yyoshiki41
|
84ae986659
|
Remove Addr field from clusterNode
|
2016-10-06 05:24:28 +09: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
|
bb84d84aea
|
Merge pull request #375 from go-redis/fix/cluster-without-nodes
Don't panic when cluster does not have valid nodes.
|
2016-09-27 12:38:15 +03:00 |
Vladimir Mihailenco
|
0b706418d9
|
Add Pipeline to Cmdable.
|
2016-09-27 09:29:21 +00:00 |
evalphobia
|
8f5aeb7065
|
Disable idle checks for cluster connection
|
2016-09-27 14:13:33 +09:00 |
Vladimir Mihailenco
|
c0b792a059
|
Don't panic when cluster does not have valid nodes.
|
2016-09-23 11:52:19 +00:00 |
Vladimir Mihailenco
|
261cf7ae70
|
Fix Del command case.
|
2016-07-08 09:30:38 +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
|
4e64d5aa6e
|
Run cluster tests on Client with RouteByLatency option.
|
2016-06-06 09:43:29 +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
|
092698ecd3
|
Tweak transaction API.
|
2016-05-02 15:54:15 +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
|
96650c0e91
|
Merge pull request #302 from go-redis/fix/export-cluster-node-id
Expose cluster node id in ClusterSlots.
|
2016-04-09 13:16:55 +03:00 |
Vladimir Mihailenco
|
ae217e0444
|
Expose cluster node id in ClusterSlots.
|
2016-04-09 12:52:43 +03:00 |
Vladimir Mihailenco
|
d79074eadb
|
Remove PMessage.
|
2016-04-09 11:51:13 +03:00 |
Vladimir Mihailenco
|
1fbb1098f2
|
Merge branch 'v4' of github.com:go-redis/redis into v4
|
2016-04-09 11:41:01 +03:00 |
Vladimir Mihailenco
|
7a03514d7f
|
Rename Multi to Tx to better reflect the purpose. Fixes #194.
|
2016-04-09 11:23:58 +03:00 |
Vladimir Mihailenco
|
3b051d2374
|
Reuse single Pipeline type in Client, ClusterClient and Ring.
|
2016-04-09 10:47:15 +03:00 |
Vladimir Mihailenco
|
04b6c9d3ad
|
Improve comment.
|
2016-04-06 13:13:03 +03:00 |
Vladimir Mihailenco
|
30ce5ebd57
|
Cleanup error handling code.
|
2016-03-19 16:33:14 +02:00 |
Vladimir Mihailenco
|
6e1aef39ea
|
Faster and simpler pool.
|
2016-03-19 11:49:13 +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
|
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 |
Anatolii Mihailenco
|
f7a4bd5023
|
Add pool instrumentation.
|
2016-01-19 20:08:22 +02:00 |
Anatolii Mihailenco
|
0bf3759a6d
|
Create hashtag package.
|
2015-12-31 16:25:20 +02:00 |
Vladimir Mihailenco
|
36487d8462
|
Stabilize build.
|
2015-12-22 12:08:35 +02:00 |
Vladimir Mihailenco
|
9079a66323
|
cluster: add Watch support.
|
2015-12-16 16:15:01 +02:00 |
Vladimir Mihailenco
|
fb44c891dd
|
Fix sporadic pool timeouts with IdleTimeout != 0. Fixes #195.
|
2015-11-27 13:52:35 +02:00 |
Vladimir Mihailenco
|
c809246d8b
|
Clarify thread safety. Fixes #166.
|
2015-09-12 09:36:03 +03:00 |
Vladimir Mihailenco
|
1608a33e55
|
ring: fix key hashing in Ring pipeline.
|
2015-06-24 15:37:41 +03:00 |
Vladimir Mihailenco
|
46f49a17a5
|
Add Redis Ring.
|
2015-06-03 14:25:52 +03:00 |
Vladimir Mihailenco
|
b70f364fcc
|
Merge pull request #99 from go-redis/fix/release-reloading-with-delay
cluster: release reloading with delay.
|
2015-05-26 12:08:48 +03:00 |
Vladimir Mihailenco
|
40b429df49
|
Reduce number of various options structs. Slightly reword comments.
|
2015-05-23 17:56:18 +03:00 |
Vladimir Mihailenco
|
f6ef0fd342
|
Add basic example how to use Redis Cluster. Unify comments.
|
2015-05-23 16:35:30 +03:00 |
Vladimir Mihailenco
|
40bad36dfb
|
cluster: don't reload slots if address already changed.
|
2015-05-14 16:37:12 +03:00 |
Vladimir Mihailenco
|
84cd16e214
|
cluster: user ClusterInfo instead of Ping to find live node.
|
2015-05-13 12:38:34 +03:00 |
Vladimir Mihailenco
|
7f1eb05ba8
|
cluster: don't reset command when there no attempts left.
|
2015-05-10 16:01:38 +03:00 |
Vladimir Mihailenco
|
2507be6cd2
|
Merge pull request #96 from go-redis/fix/reload-slots-in-background
Reload slots in background goroutine.
|
2015-05-05 12:44:43 +03:00 |
Vladimir Mihailenco
|
121cfc5792
|
Remove deprecated funcs.
|
2015-05-02 16:22:06 +03:00 |
Vladimir Mihailenco
|
84dc1f963e
|
Reload slots in background goroutine.
|
2015-05-01 14:22:49 +03:00 |
Vladimir Mihailenco
|
7da995891e
|
Lower ticker duration.
|
2015-05-01 13:24:24 +03:00 |
Vladimir Mihailenco
|
cc0ee10019
|
Fix deadlock. Stop time.Ticker. Add a test that closed client is not deadlocked.
|
2015-05-01 11:01:01 +03:00 |
Vladimir Mihailenco
|
d00fb6ead9
|
Implement Close and fix reaper goroutine leak.
|
2015-05-01 09:37:59 +03:00 |
Vladimir Mihailenco
|
46527c872d
|
cluster: don't reset clients when slots are changed.
|
2015-04-28 18:17:33 +03:00 |
Vladimir Mihailenco
|
d3fb658fef
|
Fix pool waiting for connection that was removed.
|
2015-04-17 15:42:35 +03:00 |
Dimitrij Denissenko
|
51f0a7b0a7
|
Ensure slots are initialised. Return non-failing connections to pool
|
2015-04-13 14:33:44 +01:00 |
Vladimir Mihailenco
|
99fe9114b1
|
Add ClusterPipeline.
|
2015-04-13 09:31:30 +03:00 |
Vladimir Mihailenco
|
fc0565a85b
|
Remove getAddrs.
|
2015-04-08 12:28:50 +03:00 |
Vladimir Mihailenco
|
52a9dd52b7
|
Store addresses of replicas again.
|
2015-04-08 12:28:21 +03:00 |
Vladimir Mihailenco
|
dbfd75705c
|
Remove unused func.
|
2015-04-07 12:51:01 +03:00 |
Vladimir Mihailenco
|
2511a1791d
|
Use only master node address.
|
2015-04-07 12:51:01 +03:00 |
Vladimir Mihailenco
|
94a31f499f
|
Attempt to cleanup cluster logic.
|
2015-04-07 12:51:01 +03:00 |
Vladimir Mihailenco
|
fe931fc851
|
Add reaper that closes idle connections to the cluster.
|
2015-04-05 15:41:16 +03:00 |
Dimitrij Denissenko
|
ac4571386d
|
Naming consistency
|
2015-03-30 21:12:52 +01:00 |