Commit Graph

1758 Commits

Author SHA1 Message Date
Vladimir Mihailenco bd234b91fe Add StructValue so we don't need temp slices to pass keys and values 2021-02-03 12:45:02 +02:00
Kailash Nadh 600f1665a0 Add missing error checks and support for MGET in Scan() 2021-02-03 13:43:04 +05:30
Kailash Nadh e113512c18 Add example showing scanning to struct 2021-02-02 16:28:35 +05:30
Kailash Nadh f9dfc7a949 Refactor scan signature to work with Slice and StringMap cmds 2021-02-02 16:28:10 +05:30
Kailash Nadh a4144ea98e Add SliceCmd.Scan() (hscan pkg) and tests 2021-02-02 13:04:52 +05:30
Vladimir Mihailenco 380ab17274 Fix cleanup 2021-01-29 12:12:47 +02:00
Vladimir Mihailenco 8926f2992a Cleanup 2021-01-29 12:04:39 +02:00
Kailash Nadh 6f96bebac7 Add redis.Scan() to scan results from redis maps into structs.
The package uses reflection to decode default types (int, string
etc.) from Redis map results (key-value pair sequences) into
struct fields where the fields are matched to Redis keys by tags.

Similar to how `encoding/json` allows custom decoders using
`UnmarshalJSON()`, the package supports decoding of arbitrary
types into struct fields by defining a `Decode(string) error`
function on types.

The field/type spec of every struct that's passed to Scan() is
cached in the package so that subsequent scans avoid iteration
and reflection of the struct's fields.
2021-01-28 18:04:38 +05:30
Vladimir Mihailenco bf010a705d Export scripter interface 2021-01-26 11:57:16 +02:00
Vladimir Mihailenco 99852af14d Increase timeout 2021-01-24 11:01:48 +02:00
Vladimir Mihailenco 4f34522c84 Enable pending test 2021-01-24 10:53:45 +02:00
Vladimir Mihailenco b0ac2eefc3
Merge pull request #1617 from go-redis/feature/cluster-read-only
Fix ReadOnly option in ClusterClient
2021-01-22 09:44:18 +02:00
Vladimir Mihailenco e4b2ca97cd Fix ReadOnly option in ClusterClient 2021-01-22 09:33:09 +02:00
Vladimir Mihailenco 794e5c09aa
Merge pull request #1615 from adriansmares/master
Ensure Watch closes the transaction on panic
2021-01-22 09:22:34 +02:00
Adrian-Stefan Mares 4ceab0fee3
Ensure Watch closes the transaction on panic 2021-01-21 19:29:28 +02:00
Vladimir Mihailenco a8e8bf1504 Bump otel 2021-01-19 11:49:05 +02:00
Vladimir Mihailenco 2113096ad8
Merge pull request #1601 from zikaeroh/fix-gomods
Fix broken otel example module, tidy
2021-01-19 11:48:33 +02:00
zikaeroh 80e7515018 Update example module, tidy 2021-01-16 11:20:03 -08:00
Vladimir Mihailenco aa456e55a7 Bump Go in go.mod 2021-01-10 09:19:45 +02:00
Vladimir Mihailenco 8f37eeba5d
Merge pull request #1595 from forain/add-type-option-to-scan-command
Add ScanType command to Scan with 'type' option
2021-01-09 16:25:13 +02:00
Leandro Forain c2351b491a Add ScanType command to Scan with 'type' option
As of version 6.0 you can use this 'type' option to ask SCAN to only
return objects that match a given type, allowing you to
iterate through the database looking for keys of a specific type.
2021-01-09 09:20:35 -03:00
Vladimir Mihailenco 9481d69402
Merge pull request #1596 from go-redis/fix/tx-pipeline-hook
Fix Tx pipeline hook
2021-01-09 10:30:36 +02:00
Vladimir Mihailenco 76fd0eac61 Fix Tx pipeline hook 2021-01-09 09:57:46 +02:00
Vladimir Mihailenco b543ea9e3a
Merge pull request #1582 from go-redis/renovate/github.com-go-redis-redis-v8-8.x
Update module go-redis/redis/v8 to v8.4.4
2021-01-09 08:51:32 +02:00
Vladimir Mihailenco 71e90de07c
Merge pull request #1591 from signalfx/clusterslots-ro
ClusterSlots Config and ReadOnly
2021-01-09 08:50:35 +02:00
Ben Keith 74fdad907c ClusterSlots Config and ReadOnly
You have to set the ReadOnly flag on the ClusterOptions to make it fall back to
non-master nodes on reads. For non-clustered situations where you have multiple
nodes in a single ClusterSlot, it made the non-master node useless because it would
never route requests to it and if you set ReadOnly=true it would issue a READONLY
command to it, which would fail.

See comment in code for more details.
2021-01-06 12:14:04 -05:00
Vladimir Mihailenco b3e0aa270a
Merge pull request #1589 from williamkinney/maxretry
add disable/-1 comment to max retries
2020-12-29 08:24:24 +02:00
= 9c56dbd862 add disable/-1 comment to max retries 2020-12-28 14:47:46 -08:00
Jiekun 72e5988b6e
Added test setup document in README.md (#1585)
* Added test setup document in README.md

* Fixed typo
2020-12-21 08:55:13 +02:00
Renovate Bot 50541e67f3
Update module go-redis/redis/v8 to v8.4.4 2020-12-16 15:56:09 +00:00
Vladimir Mihailenco 143859e345 Rename 2020-12-16 17:45:06 +02:00
Vladimir Mihailenco 602b106abb go mod tidy 2020-12-16 17:32:17 +02:00
Vladimir Mihailenco e9fef17b52
Merge pull request #1581 from prathik/replica-cmd
Add support to get cluster replica node for a given key
2020-12-16 17:29:41 +02:00
Prathik Rajendran M fd6643daa1 Add support to get cluster replica node for a given key 2020-12-16 16:55:40 +05:30
Vladimir Mihailenco 80d296154f
Merge pull request #1580 from darkyzhou/patch-1
make error message for unreachable sentinels more clear
2020-12-16 10:17:18 +02:00
darkyzhou ea806acb7e
make error message for unreachable sentinels more clear
The original text `all sentinels are unreachable` can sometimes be misleading, making some users think that all of their redis sentinels are down.

But it might not be the reality especially when using kubernetes and specify `c.sentinelAddrs` as the Service's domain. In this case, when the sentinel to which the domain is redirected runs into some errors despite other sentinels running healthily, the original text given by redis client will be confusing and delivering false message!

Just got out of a similar dilemma after checking the source code, feel free to correct me if I am wrong :)
2020-12-15 19:25:31 +08:00
Vladimir Mihailenco 19e561f0f0
Merge pull request #1575 from go-redis/renovate/github.com-onsi-gomega-1.x
Update module onsi/gomega to v1.10.4
2020-12-11 08:43:30 +02:00
Vladimir Mihailenco 8271b88d02
Merge pull request #1578 from go-redis/renovate/go.opentelemetry.io-otel-sdk-0.x
Update module go.opentelemetry.io/otel/sdk to v0.15.0
2020-12-11 08:43:09 +02:00
Renovate Bot 935e3d0806
Update module onsi/gomega to v1.10.4 2020-12-11 06:42:54 +00:00
Vladimir Mihailenco ec7fb0d479
Merge pull request #1535 from go-redis/renovate/github.com-go-redis-redis-v8-8.x
Update module go-redis/redis/v8 to v8.4.2
2020-12-11 08:42:51 +02:00
Renovate Bot a4a55d1e85
Update module go.opentelemetry.io/otel/sdk to v0.15.0 2020-12-11 06:42:12 +00:00
Renovate Bot d082354160
Update module go-redis/redis/v8 to v8.4.2 2020-12-11 06:42:02 +00:00
Vladimir Mihailenco a464b70c06
Merge pull request #1577 from go-redis/renovate/go.opentelemetry.io-otel-0.x
Update module go.opentelemetry.io/otel to v0.15.0
2020-12-11 08:39:47 +02:00
Renovate Bot 59a2ddc589
Update module go.opentelemetry.io/otel to v0.15.0 2020-12-11 05:34:41 +00:00
Vladimir Mihailenco 9cd21762d8 Add link to Redis Mock 2020-12-10 09:19:39 +02:00
Vladimir Mihailenco 50f12a149b
Merge pull request #1574 from go-redis/fix/wait-goroutine-to-finish
Wait for the goroutine to finish
2020-12-06 17:27:38 +02:00
Vladimir Mihailenco 2c9c526023 Wait for the goroutine to finish 2020-12-06 17:09:22 +02:00
Vladimir Mihailenco 2e398ada86
Merge pull request #1572 from go-redis/fix/close-conn-on-context-timeout
Close the conn on context timeout
2020-12-06 11:34:07 +02:00
Vladimir Mihailenco 02ccf05ed0 Close the conn on context timeout 2020-12-06 11:14:07 +02:00
Vladimir Mihailenco 43d9b98d48 Fix race 2020-12-06 10:05:26 +02:00