Commit Graph

2504 Commits

Author SHA1 Message Date
Aoang 229f8d5a5d
chore: update CI Test Go version to v1.18 2022-03-22 13:38:16 +08:00
naiqianz a8a7665ddf
feat(pool): add check for badConnection
* fix: badConn check(#2053)

* fix: internalpool test

* fix: sentinel test

* fix: conncheck ut

* fix: remove maxBadConnRetries

* fix: add connCheck.deadline check

Signed-off-by: monkey92t <golang@88.com>
2022-03-21 01:06:47 +08:00
monkey92t f5fbb367e7 fix: remove test(XInfoConsumer.idle), not a stable return value when tested.
Signed-off-by: monkey92t <golang@88.com>
2022-03-19 22:04:22 +08:00
monkey92t 6f1a1ac284 fix: add XInfoConsumers test
Signed-off-by: monkey92t <golang@88.com>
2022-03-19 20:54:27 +08:00
Vladimir Mihailenco 8b3668e554 chore: add chat link 2022-03-19 14:32:12 +02:00
Monkey 997ab5e7e3
fix(#1943): xInfoConsumer.Idle should be time.Duration instead of int64 (#2052)
Signed-off-by: monkey92t <golang@88.com>
2022-03-19 18:22:12 +08:00
Monkey 335d946cd6
chore: sync master (#2051)
* Upgrade redis-server version (#1833)

* Upgrade redis-server version

Signed-off-by: monkey <golang@88.com>

* XAutoClaim changed the return value

Signed-off-by: monkey <golang@88.com>

* add cmd: geosearch, geosearchstore (#1836)

* add cmd: geosearch, geosearchstore

Signed-off-by: monkey92t <golang@88.com>

* GeoSearchQuery and GeoSearchLocationQuery changed to pointer passing

Signed-off-by: monkey92t <golang@88.com>

* Added missing method XInfoStreamFull to Cmdable interface

* Run go mod tidy in redisotel

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>

* Revert "ConnPool check  fd for bad conns (#1824)" (#1849)

This reverts commit 346bfafddd.

* Automate release process (#1852)

* Bump github.com/onsi/gomega from 1.10.5 to 1.14.0 (#1832)

* Bump github.com/onsi/gomega from 1.10.5 to 1.14.0

Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.10.5 to 1.14.0.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](https://github.com/onsi/gomega/compare/v1.10.5...v1.14.0)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Upgrade gomega to v1.15.0

Signed-off-by: monkey92t <golang@88.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: monkey92t <golang@88.com>

* Add version.go

* Fix otel example

* Fix package name in release script

* More fixes for otel example

* And more

* Fix release.sh

* Release v8.11.3 (release.sh)

* Create an annotated tag to give release.yml chance to run

* Tweak tag.sh

* Add Cmd.Slice helper to cast to []interface{} (#1859)

* after the connection pool is closed, no new connections should be added (#1863)

* after the connection pool is closed, no new connections should be added

Signed-off-by: monkey92t <golang@88.com>

* remove runGoroutine

Signed-off-by: monkey92t <golang@88.com>

* pool.popIdle add p.closed check

Signed-off-by: monkey92t <golang@88.com>

* upgrade golangci-lint v1.42.0

Signed-off-by: monkey92t <golang@88.com>

* Bump github.com/onsi/gomega from 1.15.0 to 1.16.0 (#1865)

Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.15.0 to 1.16.0.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](https://github.com/onsi/gomega/compare/v1.15.0...v1.16.0)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add go 1.17 to the build matrix

* Remove go 1.15 from build matrix

* Add scan struct example (#1870)

* Replace release job

* Bump github.com/cespare/xxhash/v2 from 2.1.1 to 2.1.2 (#1872)

Bumps [github.com/cespare/xxhash/v2](https://github.com/cespare/xxhash) from 2.1.1 to 2.1.2.
- [Release notes](https://github.com/cespare/xxhash/releases)
- [Commits](https://github.com/cespare/xxhash/compare/v2.1.1...v2.1.2)

---
updated-dependencies:
- dependency-name: github.com/cespare/xxhash/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix tag script to push tag by tag

* Fix releasing.md

* Fix/pubsub ping mutex (#1878)

* Fix PubSub.Ping to hold the lock

* Fix PubSub.Ping to hold the lock

* add write cmd data-race test

Signed-off-by: monkey92t <golang@88.com>

Co-authored-by: monkey92t <golang@88.com>

* chore: cleanup OpenTelemetry example

* chore: gofmt all code

* Refactor TestParseURL

This is in preparation for supporting query parameters
in ParseURL:

- use an expected *Options instance to execute assertions on
- extract assertions into helper function
- enable parallel testing
- condense test table

* Add query parameter parsing to ParseURL()

Before this change, ParseURL would only accept a very restricted
set of URLs (it returned an error, if it encountered any parameter).

This commit introduces the ability to process URLs like

	redis://localhost/1?dial_timeout=10s

and similar.

Go programs which were providing a configuration tunable (e.g.
CLI flag, config entry or environment variable) to configure
the Redis connection now don't need to perform this task
themselves.

* chore: add links to readme

* chore: fix discussions link

* empty hooks.withContext removed

* chore: gofmt

* chore: use conventional commits and auto-generate changelog

* feat: add acl auth support for sentinels

* chore: swap to acl auth at the test-level

* Add support for BLMove command

* chore: update dependencies

* chore: update link

* feat: add SetVal method for each command

* feat: add Cmd.{String,Int,Float,Bool}Slice helpers and an example

* chore: tweak GH actions to run all jobs

* chore: add Lua scripting example

* Fix Redis Cluster issue during roll outs of new nodes with same addr (#1914)

* fix: recycle connections in some Redis Cluster scenarios

This issue was surfaced in a Cloud Provider solution that used for
rolling out new nodes using the same address (hostname) of the nodes
that will be replaced in a Redis Cluster, while the former ones once
depromoted as Slaves would continue in service during some mintues
for redirecting traffic.

The solution basically identifies when the connection could be stale
since a MOVED response will be returned using the same address (hostname)
that is being used by the connection. At that moment we consider the
connection as no longer usable forcing to recycle the connection.

* chore: lazy reload when moved or ask

* chore: use conv commit message

* chore: release v8.11.4 (release.sh)

* fix: add whitespace for avoid unlikely colisions

* fix: format

* chore: fix links

* chore: use ctx parameter in cmdInfo

* Bump github.com/onsi/ginkgo from 1.16.4 to 1.16.5 (#1925)

Bumps [github.com/onsi/ginkgo](https://github.com/onsi/ginkgo) from 1.16.4 to 1.16.5.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](https://github.com/onsi/ginkgo/compare/v1.16.4...v1.16.5)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: add support for time.Duration write and scan

* test: add test case for setting and scanning durations

* chore: fix linter

* fix(extra/redisotel): set span.kind attribute to client

According to the opentelemetry specification this should always be set to client for database client
libraries.

I've also removed the SetAttributes call and instead set the attributes during creation of the span.
This is what the library SHOULD be doing according to the opentelemetry api specification.

* chore: update otel example

* fix: update some argument counts in pre-allocs

In some cases number of pre-allocated places in
argument array is missing 1 or 2 elements,
which results in re-allocation of twice as large array

* chore: add example how to delete keys without a ttl

* chore: don't enable all lints

* chore(deps): bump github.com/onsi/gomega from 1.16.0 to 1.17.0

Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.16.0 to 1.17.0.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](https://github.com/onsi/gomega/compare/v1.16.0...v1.17.0)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* feat: Add redis v7's NX, XX, GT, LT expire variants

* chore: add missing readme

* chore: tweak feature links

* chore: remove Discord

* fix: set timeout for WAIT command. Fixes #1963

* build: update `go` directive in `go.mod` to 1.17

This commit enables support for module graph pruning and lazy module
loading for projects that are at Go 1.17 or higher.

Reference: https://go.dev/ref/mod#go-mod-file-go
Reference: https://go.dev/ref/mod#graph-pruning
Reference: https://go.dev/ref/mod#lazy-loading
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* chore: update link

* chore: export cmder.SetFirstKeyPos to support build module commands

* feat(redisotel): ability to override TracerProvider (#1998)

* fix: add missing Expire methods to Cmdable

This is a followup to https://github.com/go-redis/redis/pull/1928

* chore(deps): bump github.com/onsi/gomega from 1.17.0 to 1.18.1

Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.17.0 to 1.18.1.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](https://github.com/onsi/gomega/compare/v1.17.0...v1.18.1)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update README.md (#2011)

chore: add fmt library in example code

* chore: instrumentation name and version (#2012)

* fix: invalid type assert in stringArg

* chore: cleanup

* fix: example/otel compile error (#2028)

* fix: rename Golang to Go (#2030)

https://go.dev/doc/faq#go_or_golang

* feat: add support for passing extra attributes added to spans

* feat: set net.peer.name and net.peer.port in otel example

* chore: tweak Uptrace copy

* feat: add support for COPY command (#2016)

* feat: add support for acl sentinel auth in universal client

* chore(deps): bump actions/checkout from 2 to 3

Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: add hll example

* chore: tweak release script

* chore: release v8.11.5 (release.sh)

* chore: add discord back

Co-authored-by: Eugene Ponizovsky <ponizovsky@gmail.com>
Co-authored-by: Bogdan Drutu <bogdandrutu@gmail.com>
Co-authored-by: Vladimir Mihailenco <vladimir.webdev@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kishan B <kishancs46@gmail.com>
Co-authored-by: Dominik Menke <dom@digineo.de>
Co-authored-by: Gökhan Özeloğlu <gozeloglu@gmail.com>
Co-authored-by: Justin Sievenpiper <justin@sievenpiper.co>
Co-authored-by: Алексей Романовский <aromanovsky@epiphan.com>
Co-authored-by: Stavros Panakakakis <stavrospanakakis@gmail.com>
Co-authored-by: Pau Freixes <pfreixes@gmail.com>
Co-authored-by: Ethan Hur <ethan0311@gmail.com>
Co-authored-by: Jackie <18378976+Pyrodash@users.noreply.github.com>
Co-authored-by: Kristinn Björgvin Árdal <kristinnardalsecondary@gmail.com>
Co-authored-by: ffenix113 <razerer@bigmir.net>
Co-authored-by: Bastien Penavayre <bastienPenava@gmail.com>
Co-authored-by: James3 Li(李麒傑) <james3_li@asus.com>
Co-authored-by: Eng Zer Jun <engzerjun@gmail.com>
Co-authored-by: gzjiangtao2014 <gzjiangtao2014@corp.netease.com>
Co-authored-by: Nelz <nelz9999@users.noreply.github.com>
Co-authored-by: Daniel Richter <Nexyz9@gmail.com>
Co-authored-by: Seyed Ali Ghaffari <ali.ghaffari@outlook.com>
Co-authored-by: lintanghui <lintanghui@bilibili.com>
Co-authored-by: hidu <duv123+github@gmail.com>
Co-authored-by: Jonas Lergell <jonas.lergell@volvocars.com>
Co-authored-by: Alex Kahn <alexanderkahn@gmail.com>
2022-03-19 12:40:31 +08:00
Vladimir Mihailenco 40e84a79bf chore: add discord back 2022-03-18 14:00:38 +02:00
Vladimir Mihailenco cae6772309
Merge pull request #2050 from go-redis/release/v8.11.5
Release/v8.11.5
2022-03-17 15:27:49 +02:00
Vladimir Mihailenco 6f7d7a1e9d chore: release v8.11.5 (release.sh) 2022-03-17 15:14:48 +02:00
Vladimir Mihailenco 081bf6b897 chore: tweak release script 2022-03-17 15:13:56 +02:00
Vladimir Mihailenco 04b14786d0 Merge branch 'master' of github.com:go-redis/redis 2022-03-17 14:31:05 +02:00
Vladimir Mihailenco dbd417ac78 chore: add hll example 2022-03-17 14:30:55 +02:00
Vladimir Mihailenco d28f1f8d39
Merge pull request #2042 from go-redis/dependabot/github_actions/actions/checkout-3
chore(deps): bump actions/checkout from 2 to 3
2022-03-16 09:44:02 +02:00
dependabot[bot] cfc0812ae6
chore(deps): bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 01:24:03 +00:00
Vladimir Mihailenco 65e242e263
Merge pull request #2039 from jsievenpiper/sentinel-universal
feat: add support for acl sentinel auth in universal client
2022-03-01 08:57:34 +02:00
Justin Sievenpiper ab0ccc4741
feat: add support for acl sentinel auth in universal client 2022-02-28 14:55:37 -08:00
Alex Kahn 730afbcffb
feat: add support for COPY command (#2016) 2022-02-28 01:07:49 +08:00
Vladimir Mihailenco 627f4dab54
Merge pull request #2033 from thrawny/feature/otel-attributes
Feature/otel attributes
2022-02-22 15:31:39 +02:00
Vladimir Mihailenco 6fd61e8258 chore: tweak Uptrace copy 2022-02-22 15:29:10 +02:00
Jonas Lergell 69bf454f70 feat: set net.peer.name and net.peer.port in otel example 2022-02-22 14:15:32 +01:00
Jonas Lergell 39faaa1715 feat: add support for passing extra attributes added to spans 2022-02-22 14:15:28 +01:00
Vladimir Mihailenco c898357929
Merge pull request #2031 from hidu/master
fix: rename Golang to Go
2022-02-22 15:08:14 +02:00
hidu b82a2d9d4d fix: rename Golang to Go (#2030)
https://go.dev/doc/faq#go_or_golang
2022-02-20 13:38:20 +08:00
Vladimir Mihailenco aa1530aaf0
Merge pull request #2029 from hidu/master
fix example/otel compile error (#2028)
2022-02-19 08:49:38 +02:00
hidu 187c07c41b fix: example/otel compile error (#2028) 2022-02-18 22:59:59 +08:00
Vladimir Mihailenco b096f432a3 chore: cleanup 2022-02-18 09:45:35 +02:00
Vladimir Mihailenco ed1b5bb28a
Merge pull request #2027 from lintanghui/master
fix:invalid type assert in stringArg
2022-02-18 09:42:50 +02:00
lintanghui de6c131865 fix: invalid type assert in stringArg 2022-02-18 11:36:04 +08:00
Vladimir Mihailenco a034b08191
Merge pull request #1991 from jiangtao244/master
feat: export cmder.SetFirstKeyPos to support build module commands
2022-02-02 09:32:04 +02:00
Vladimir Mihailenco 8ed766ba37
Merge pull request #2010 from go-redis/dependabot/go_modules/github.com/onsi/gomega-1.18.1
chore(deps): bump github.com/onsi/gomega from 1.17.0 to 1.18.1
2022-02-02 09:27:13 +02:00
Nelz 3ecadf5f87
chore: instrumentation name and version (#2012) 2022-02-02 09:26:14 +02:00
Seyed Ali Ghaffari e2d145d6ba
Update README.md (#2011)
chore: add fmt library in example code
2022-01-31 12:34:32 +02:00
dependabot[bot] 4ddcf48f20
chore(deps): bump github.com/onsi/gomega from 1.17.0 to 1.18.1
Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.17.0 to 1.18.1.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](https://github.com/onsi/gomega/compare/v1.17.0...v1.18.1)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 01:24:51 +00:00
Vladimir Mihailenco 2321414c27
Merge pull request #2001 from Richtermeister/patch-2
fix: add missing Expire methods to Cmdable
2022-01-23 08:30:28 +02:00
Daniel Richter 17e3b43879
fix: add missing Expire methods to Cmdable
This is a followup to https://github.com/go-redis/redis/pull/1928
2022-01-22 10:51:10 -08:00
Nelz bf8d4aa60c
feat(redisotel): ability to override TracerProvider (#1998) 2022-01-18 08:44:05 +02:00
nick comer 52276c393d feat: extract dialer to `DefaultDialer` to allow wrapping
Allowing the default dialing function to be wrapped allows for library
users to let the library continue to own the logic for dialing and let
users wrap the function for more observability.

My use case is to override `Options.Dialer` and add Jaeger tracing to
gain insight into the cost of new connections on a latency sensitive API.

```go
	defDialer := redis.DefaultDialer(opts)
	opts.Dialer = func(ctx context.Context, network, addr string) (net.Conn, error) {
		span, ctx := opentracing.StartSpanFromContext(ctx, "cache-repo-redis: new redis connection")
		defer span.Finish()

		return defDialer(ctx, network, addr)
	}
```

Without this, I end up needing to copy-paste the code from the internal
code, which is less-than-ideal since I don't want to own the maintenance
of this logic.
2022-01-14 16:01:09 -05:00
Vladimir Mihailenco f1dd3d5898
Merge pull request #1968 from Juneezee/go1.17
build: update `go` directive in `go.mod` to 1.17
2022-01-12 16:22:36 +02:00
gzjiangtao2014 f4bf09cfc8 chore: export cmder.SetFirstKeyPos to support build module commands 2022-01-11 14:47:55 +08:00
Vladimir Mihailenco 955df2c4c4 chore: update link 2021-12-29 10:45:45 +02:00
Eng Zer Jun 463389046e
build: update `go` directive in `go.mod` to 1.17
This commit enables support for module graph pruning and lazy module
loading for projects that are at Go 1.17 or higher.

Reference: https://go.dev/ref/mod#go-mod-file-go
Reference: https://go.dev/ref/mod#graph-pruning
Reference: https://go.dev/ref/mod#lazy-loading
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2021-12-27 08:31:17 +08:00
Vladimir Mihailenco 333fee1a8f fix: set timeout for WAIT command. Fixes #1963 2021-12-26 16:42:17 +02:00
Vladimir Mihailenco f737d9a830 chore: remove Discord 2021-12-24 15:33:36 +02:00
wjdqhry 4ce90461a5 fix: remove comment 2021-12-22 14:26:40 +09:00
wjdqhry bf334e7738 feat: enable struct on HSet 2021-12-17 11:54:43 +09:00
Vladimir Mihailenco e9a8bb4f86
Merge pull request #1954 from Ci-Jie/bugfix/tweak-some-feature-links
chore: tweak feature links
2021-11-25 12:10:11 +02:00
James3 Li(李麒傑) cc87acb6d6 chore: tweak feature links 2021-11-25 17:02:28 +08:00
Vladimir Mihailenco 5c9b845659 chore: add missing readme 2021-11-23 15:42:05 +02:00
Bastien Penavayre e19bbb26e2 feat: Add redis v7's NX, XX, GT, LT expire variants 2021-11-21 16:02:40 +02:00