redis-plus-plus icon indicating copy to clipboard operation
redis-plus-plus copied to clipboard

TODO LIST

Open sewenew opened this issue 3 years ago • 17 comments

Hi Guys,

There're still many features we need to support. The following is a TODO list:

For each TODO item, I open a dedicated issue to track it. If I missed something, you can also add a comment here, and I'll update this TODO list. When the feature is merged into master branch, I'll close the corresponding issue, and remove it from the list.

If you'd like some feature to be supported ASAP, you can thumb up the corresponding issue. I'll assign each feature a priority (HIGH/MID/LOW) based on the number of thumb up and the difficulty to implement it.

Thank you for choosing redis-plus-plus. Also, if you like it, feel free to star it :)

Regards

sewenew avatar Jul 19 '20 12:07 sewenew

Hello @sewenew hiredis supports RESP3 protocol now and with Redis 6.x we have support for server assisted client side caching. Any plans for making these features available or easy to use within redis-plus-plus library?

hrishikesh713 avatar Aug 21 '20 22:08 hrishikesh713

@hrishikesh713 Client side caching is quite complex, and not an easy job to implement. I might implement part of it in the future. I haven't take a deep look into RESP3 protocol. Not sure if it's hard to do it.

Thanks for pointing these features out! I'll add two issues for them.

Regards

sewenew avatar Aug 22 '20 02:08 sewenew

I would like to appreciate the way the library is written and how it helps us. The application(client-server) that currently, I am working on requires to query 70K to 100K times to Redis server in a short window, as a combined effect we see the round trip time is quite more due to synchronous framework. It will be a great help if you plan to add asynchronous support.

looking forward to hearing from you :)

pratick5 avatar Jan 08 '21 11:01 pratick5

@pratick5 Thanks for choosing redis++! It seems async interface is highly required. I will increase its priority.

I did some research before, and the async interface will be based on hiredis and libuv, return a std::future object without blocking.

If I have any progress, I will let you know. Regards

sewenew avatar Jan 10 '21 23:01 sewenew

@pratick5 Thanks for choosing redis++! It seems async interface is highly required. I will increase its priority.

I did some research before, and the async interface will be based on hiredis and libuv, return a std::future object without blocking.

If I have any progress, I will let you know. Regards

hi, the async interface looks like a big change, I wonder is the then 'method' of the std::future will schedule tasks to the same thread ? and the approximate completion date of it. Thanks.

majianwei0705 avatar Apr 07 '21 06:04 majianwei0705

@majianwei0705 So far, i.e. C++ 17 or even C++ 20, std::future doesn't support then interface.

By default, the async interface returns std::future. However, I'll support some compile options to let user compile the async code with other implementation of the future utils. So that you can choose a future implementation that support the then interface, e.g. boost::future, folly::Future.

Regards

sewenew avatar Apr 09 '21 14:04 sewenew

@majianwei0705 So far, i.e. C++ 17 or even C++ 20, std::future doesn't support then interface.

By default, the async interface returns std::future. However, I'll support some compile options to let user compile the async code with other implementation of the future utils. So that you can choose a future implementation that support the then interface, e.g. boost::future, folly::Future.

Regards

OK, thank you very much.

majianwei0705 avatar Apr 12 '21 02:04 majianwei0705

I want to know when the async interface will be finished

ChenTianSky avatar Apr 25 '21 02:04 ChenTianSky

@chentiannan I'll try to release the first async version at the beginning of May.

sewenew avatar Apr 26 '21 15:04 sewenew

Async support is out! Although, so far, Redis Cluster, Redis Sentinel, Transaction and Subscriber support are still on the way.

Please check the doc for detail.

Regards

sewenew avatar May 09 '21 15:05 sewenew

As the GETBIT has been released, may I ask when the SETBIT implementation will be available?

milanese1899 avatar Jun 09 '21 08:06 milanese1899

@milanese1899 SETBIT is, in fact, removed on purpose. Please check this issue for detail.

Regards

sewenew avatar Jun 09 '21 13:06 sewenew

@milanese1899 SETBIT is, in fact, removed on purpose. Please check this issue for detail.

Regards

Got it, thank you for your response.

milanese1899 avatar Jun 09 '21 14:06 milanese1899

Hi @sewenew

I think the first post in this thread can be updated:

There're still many features we need to support. The following is a TODO list: Async interface. Issue 13: HIGH Redlock. Issue 24: MID Bloom filter support. MID RESP3 protocol. Issue 86: LOW Client side caching. Issue 87: LOW

The async interface is done. Also, I don't know if you want to clutter redis-plus-plus with the Bloom filter module. I'm not sure what the exact idea was for this, but redis-plus-plus-modules can for instance be used to cover this.

Regards

wingunder avatar Jun 21 '21 13:06 wingunder

@wingunder The async interface is partially done. It doesn't support Redis Sentinel and Redis Cluster. Recently I don't have enough time to finish it. The Bloom filter support was plan to support Bloom filter data structure with or without the Bloom filter module, and it was planed before the creation of redis-plus-plus-modules. Now, since we have redis-plus-plus-modules to work with Redis Modules, I'll remove this TODO from the list.

Regards

sewenew avatar Jun 21 '21 13:06 sewenew

I want to know when the client side cache will be ready.

chunyisong avatar Apr 20 '23 06:04 chunyisong

@chunyisong Sorry, but the completion time of this feature has not been determined. I've already started a in-memory cache project, but still not finished. Client side cache depends on this project.

Regards

sewenew avatar Apr 21 '23 02:04 sewenew