Are there middleware solutions built on TiKV that are compatible with the Redis protocol?

Note:
This topic has been translated from a Chinese forum by GPT and might contain errors.

Original topic: 有基于TiKV构建兼容Redis协议的中间件方案吗?

| username: abelard2008

I have recently been looking for highly available distributed alternatives for the standalone MySQL and standalone Redis in my project. After testing, replacing my MySQL with TiDB went relatively smoothly. I think it would be best if there were middleware compatible with Redis based on TiKV. After some research, I couldn’t find a suitable one. I would like to ask everyone if you could share the solutions you are currently using, or if my approach is not very feasible? Thank you!

PS: For distributed Redis-compatible solutions not based on TiKV, it seems that kvrocks is still quite active, but it requires setting up another system, which feels similar to using Redis Sentinel or cluster mode.

| username: Billmay表妹 | Original post link

Sure, here is the translation:

You can check out:

| username: abelard2008 | Original post link

Thank you! I’ve already read this and tried the solution mentioned in the article, but I encountered some problems that I can’t seem to solve on my own recently. That’s why I’m seeking help here, and I don’t dare to say that the solution I tried is correct ^_^.

| username: ffeenn | Original post link

I don’t know if you have tried the content in this article. Distributed Transactional Storage Compatible with Redis Protocol Based on TiKV

| username: abelard2008 | Original post link

@ffeenn Thank you! This is an article written by the author of Tidis, but in my scenario and when testing with Python alone to write more than 20,000 entries into a sorted set zset, I encountered issues where I couldn’t write and some errors that I couldn’t resolve.

PS: [1] 8-RESOURCE_EXHAUSTED, message: "Received message larger than max (9612720 vs. 4194304) · Issue #97 · tidb-incubator/tidis · GitHub
[2]8-RESOURCE_EXHAUSTED, message: "Received message larger than max (9612720 vs. 4194304)

The reason I didn’t mention this in the topic is that I failed in my attempts and wanted to see if anyone has used it in production or has other solutions. Sorry!

| username: Billmay表妹 | Original post link

There might not be any, as such practices are relatively rare in the community. Looking forward to your practice~

| username: abelard2008 | Original post link

Hmm, I’ve been driven crazy by this problem these past few days ^_^, now I just want to dive in and figure out the issue I’m facing!
Additionally, regarding this alternative solution, is it feasible? For instance, if I really solve the current problem, will it be reliable in terms of performance and such?

I’ll dive in and take a look first :slight_smile:

| username: Billmay表妹 | Original post link

In what scenarios do you use TiDB?

I can help you see if there are similar practice articles.

| username: abelard2008 | Original post link

Currently, TiDB is used to replace MySQL without any issues.
It is a middleware built on TiKV to be compatible with the Redis protocol, but I haven’t found a suitable solution.

Not sure if I understood your question correctly :slight_smile:

| username: 裤衩儿飞上天 | Original post link

Learn about Titan.

| username: abelard2008 | Original post link

Hmm, I know about Titan. It’s a similar project that’s no longer active. Plus, my understanding of it isn’t sufficient, so I’m not confident I can handle it.

If there are no other options, I’ll temporarily focus on resolving some issues that arise when using Tidis.

| username: system | Original post link

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.