Commit Graph

186 Commits

Author SHA1 Message Date
Vladimir Mihailenco b358584bd3 Fix build 2021-02-04 09:34:10 +02:00
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 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 76fd0eac61 Fix Tx pipeline hook 2021-01-09 09:57:46 +02:00
Vladimir Mihailenco 55a8f1a601
Merge pull request #1567 from go-redis/feature/otel-0.14
Update to otel v0.14
2020-11-21 10:12:54 +02:00
Vladimir Mihailenco 3921cd497c Update to otel v0.14 2020-11-21 09:56:52 +02:00
Mitsuo Heijo f5a1707d3c Update golangci-lint to v1.32 2020-11-17 23:08:15 +09:00
Vladimir Mihailenco 13782c03d0 Tweak otel span and attr names 2020-11-15 14:30:27 +02:00
Vladimir Mihailenco f92951b835 Guard against overflow in retry 2020-10-28 11:12:46 +02:00
Vladimir Mihailenco a6876ad84a Move Scan test 2020-10-13 09:33:12 +03:00
Roman Suvorov f169894120
Fix/issue 1384 (#1529)
Add support for scanning time.TIme
2020-10-13 09:13:43 +03:00
Vladimir Mihailenco e1b0a0bd7e Cleanup readLine 2020-10-10 12:26:21 +03:00
Eelco Cramer 39571ccc56
Improves performance 2020-10-09 15:06:47 +02:00
Eelco Cramer 97bbed8a92
Fixes issue where a buffer larger than 4096
bytes cannot be read
2020-10-09 11:35:14 +02:00
Vladimir Mihailenco 566840fe27 otel: add RemoteAddr 2020-09-28 17:35:49 +03:00
Vladimir Mihailenco 3e42145a26 Remove arg hex encoding 2020-09-24 10:09:09 +03:00
Vladimir Mihailenco 86326c4924 Refactor NewXInfoGroupsCmd 2020-09-23 11:50:31 +03:00
Dimitrij Denissenko 3fc96195a4 Reduce dependency chain 2020-09-17 14:32:08 +01:00
Vladimir Mihailenco ef220d0944 Tweak append arg 2020-09-05 13:17:26 +03:00
Vladimir Mihailenco c357d18624 Faster renew the subscription 2020-09-05 10:56:09 +03:00
Vladimir Mihailenco 6db422f051 Port pool fixes 2020-08-15 15:45:15 +03:00
Vladimir Mihailenco 3fbf7df014 Fix test 2020-07-28 16:26:03 +03:00
Vladimir Mihailenco 0f5d67c102 Fix zero backoff 2020-07-28 16:14:54 +03:00
Vladimir Mihailenco 6e3d4a53c6 Tweak backoff 2020-07-28 15:42:38 +03:00
刘青 8a3f304b25
Log with context to associate all log by traceID (#1413)
* Log with context to associate all log by traceID
2020-07-18 09:04:36 +03:00
Vladimir Mihailenco f2645d373d
Merge pull request #1405 from fishy/atomic-value-last-dial-error
Use atomic.Value instead of lock for ConnPool.lastDialError
2020-07-16 10:41:42 +03:00
Vladimir Mihailenco 38c87c1f84 Fix golangci 2020-07-16 10:01:27 +03:00
Vladimir Mihailenco 14c843ef89 gofumports 2020-07-16 09:52:07 +03:00
Tiger He 62469e4f42
Introduce metrics capture with OpenTelemetry (#1398)
* internal: Add instrumentation

Co-authored-by: reggiemcdonald <regmcdonald95@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2020-07-15 12:07:07 +03:00
Yuxuan 'fishy' Wang 4f70db6849 Use atomic.Value instead of lock for ConnPool.lastDialError
This makes the reading and writing of lastDialError from the pool
faster, as atomic.Value is much more lightweight than the mutex.

Note that using error in atomic.Value directly could cause panics,
because errors could have inconsistent types. Thus wrap them with a
simple struct.
2020-07-14 11:25:59 -07:00
Vladimir Mihailenco 8f29d08432 Don't record proto.Nil 2020-07-09 11:00:23 +03:00
Vladimir Mihailenco 1831363467 Add RecordError 2020-07-09 10:39:46 +03:00
Vladimir Mihailenco 64995f9a51 Tweak auto-reloads 2020-06-29 17:51:47 +03:00
Vladimir Mihailenco 0ffefcde98 Use random node to load cluster slots 2020-06-29 17:26:11 +03:00
Vladimir Mihailenco 789ee0484f Remove io.StringWriter 2020-06-12 10:09:32 +03:00
Vladimir Mihailenco 8eed1e67ff Add OpenTelemetryHook 2020-06-09 17:17:41 +03:00
Vladimir Mihailenco 694e518a8c Use Rendezvous in Ring. Thanks @rafaeleyng for initial idea and implementation 2020-06-08 13:22:37 +03:00
Vladimir Mihailenco 4440575966 Merge branch 'v8' 2020-05-21 10:16:44 +03:00
Vladimir Mihailenco a7c11d9699
Merge pull request #1285 from kudrykv/issue-1279
Use an interface for logging
2020-05-21 10:08:11 +03:00
Vladimir Mihailenco 0c500078e5
Merge pull request #1273 from theo-delaune-argus/time-nanoseconds
Store time in RFC3339Nano to keep nanoseconds
2020-05-21 09:39:48 +03:00
Vladimir Mihailenco 07656a01bf Add redis.Error interface and export ErrClosed
Fixes https://github.com/go-redis/redis/issues/1295
Closes https://github.com/go-redis/redis/pull/1296
2020-05-21 09:24:54 +03:00
Vladimir Mihailenco 3031343dae Make cmd.String() faster 2020-05-19 08:52:38 +03:00
Vladimir Mihailenco 2b060bb99d Remove error reporting 2020-05-19 08:52:38 +03:00
Vladimir Mihailenco 66cd13e793 Update otel 2020-05-19 08:52:38 +03:00
Vladimir Mihailenco 3dcb844106 Bump major version 2020-05-19 08:52:38 +03:00
Vladimir Mihailenco f5593121e0 Add ctx as first arg 2020-05-19 08:52:38 +03:00