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

Redis 5.0 Streams support #208

Closed
bobby opened this issue May 29, 2018 · 3 comments
Closed

Redis 5.0 Streams support #208

bobby opened this issue May 29, 2018 · 3 comments

Comments

@bobby
Copy link
Contributor

bobby commented May 29, 2018

Now that 5.0-rc1 has dropped (an hour prior to this writing :-), what is the path toward supporting Streams? I'd be happy to take a crack at implementing it, but I'm not super familiar with carmine internals at this point.

@ptaoussanis
Copy link
Member

Hi Bobby!

Would definitely be a nice thing to support. Haven't had the opportunity yet to look at the Streams API, so no idea yet what support would entail.

Adding support for new Redis commands would be trivial, but anything else needed/useful from the client would require some investigation/thinking.

Maybe a 1st step would be for someone to digest the Streams docs and actually enumerate what [kinds of] changes we'd expect to want in a client in general. Then somebody with interest could take a stab at an implementation, and I can try assist with feedback, etc. :-)

@comnik
Copy link

comnik commented Jun 10, 2018

I generated a fresh commands.edn and so far, basic streams functionality seems to work out of the box. The streams API is basically counting elements in a stream (XLEN), adding new elements (XADD), and three different read semantics:

  1. Reading a range of elements (XRANGE, XREVRANGE)
  2. Non- / Blocking subscriptions to new elements (XREAD)
  3. Partitioning reads amongst several groups of clients ("Consumer Groups")

Support for 1. and 2. seem to be working fine with just the fresh commands.edn. 3. is more complex, haven't looked into it much, and some of the commands mentioned in the streams intro apparently haven't made it into the command reference yet (XGROUP for example).

Will report any problems that I encounter.

ptaoussanis pushed a commit that referenced this issue Sep 22, 2018
…@bobby)

Adds:

- XLEN
- XADD
- XREADGROUP
- BZPOPMAX
- ZPOPMIN
- XREAD
- XRANGE
- XPENDING
- ZPOPMAX
- XREVRANGE
- BZPOPMIN

Changes:

- SET
@ptaoussanis
Copy link
Member

Merged manually, and cut [com.taoensso/carmine "2.19.0"] - on Clojars now 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants