Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Cache] added support for connecting to Redis clusters via DSN #28713

Merged
merged 1 commit into from Oct 10, 2018

Conversation

nicolas-grekas
Copy link
Member

@nicolas-grekas nicolas-grekas commented Oct 3, 2018

Q A
Branch? master
Bug fix? no
New feature? yes
BC breaks? no
Deprecations? no
Tests pass? yes
Fixed tickets -
License MIT
Doc PR -

Replaces #28300 and #28175

This PR allows configuring a cluster of Redis servers using all available options of either the phpredis extension or the Predis package:

  • the redis_cluster=0/1 boolean option configures whether the client should use the Redis cluster protocol;
  • several hosts can be provided using a syntax very similar to [Cache] support configuring multiple Memcached servers in one DSN #28598, enabling consistent hashing distribution of keys;
  • failover=error/distribute/slaves can be set to direct reads at slave servers;
  • extra options are passed as is to the driver (e.g. profile=2.8)
  • Predis per-server settings are also possible, using e.g. host[localhost][alias]=foo in the query string, or host[localhost]=alias%3Dfoo (ie PHP query arrays or urlencoded key/value pairs)

@jralph
Copy link

jralph commented Oct 4, 2018

This seems like it covers the caching and clustering well! Also fixes a bug with the dbindex param being passed through the query params not having any effect, we just noticed that today.

@fabpot
Copy link
Member

fabpot commented Oct 10, 2018

Thank you @nicolas-grekas.

@fabpot fabpot merged commit a42e877 into symfony:master Oct 10, 2018
fabpot added a commit that referenced this pull request Oct 10, 2018
… via DSN (nicolas-grekas)

This PR was merged into the 4.2-dev branch.

Discussion
----------

[Cache] added support for connecting to Redis clusters via DSN

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Replaces #28300 and #28175

This PR allows configuring a cluster of Redis servers using all available options of either the phpredis extension or the Predis package:
- the `redis_cluster=0/1` boolean option configures whether the client should use the Redis cluster protocol;
- several hosts can be provided using a syntax very similar to #28598, enabling consistent hashing distribution of keys;
- `failover=error/distribute/slaves` can be set to direct reads at slave servers;
- extra options are passed as is to the driver (e.g. `profile=2.8`)
- Predis per-server settings are also possible, using e.g. `host[localhost][alias]=foo` in the query string, or `host[localhost]=alias%3Dfoo` (ie PHP query arrays or urlencoded key/value pairs)

Commits
-------

a42e877 [Cache] added support for connecting to Redis clusters via DSN
@nicolas-grekas nicolas-grekas deleted the redis_cluster branch October 23, 2018 12:56
@nicolas-grekas nicolas-grekas removed this from the next milestone Nov 1, 2018
@nicolas-grekas nicolas-grekas added this to the 4.2 milestone Nov 1, 2018
This was referenced Nov 3, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants