Replies: 4 comments 13 replies
-
Hello @Daliji, I plan to officially release |
Beta Was this translation helpful? Give feedback.
-
I have released 7.0.0-beta-2020-04-18 just now. @Daliji you need to use this class https://github.com/vladimir-bukhtoyarov/bucket4j/blob/7.0/bucket4j-redis/src/main/java/io/github/bucket4j/redis/redisson/cas/RMapBasedRedissonProxyManager.java It is interesting to see benchmarking results versus your custom solution. I expect that RMapBasedRedissonProxyManager should be less effective than your solution because RMapBasedRedissonProxyManager is based on CAS operations instead of Lua stored procedures, and CAS should behave less effective in case of high contention on the same key. |
Beta Was this translation helpful? Give feedback.
-
Hi @vladimir-bukhtoyarov, I'm evaluating the possibility of using |
Beta Was this translation helpful? Give feedback.
-
Hello @vladimir-bukhtoyarov ! I have a question, is there a reason why RMap is used? As I see, RMap basic implementations RedissonMap and RedissonMapCache map all bucket4j buckets into a single Redis hashmap. Consequently, RedissonMap does not provide per-bucket expiration which is unsuitable for large bucket sets. RedissonMapCache uses quite complex script and application-side worker for bucket expiration, which is quite unnatural. Also since all buckets are stored under a single Redis hashmap, Redis Cluster can't be used naturally (RClusteredMap uses Redisson custom sharding implementation). I would expect each bucket4j bucket to map naturally to a single Redis key-value pair (probably, using RBucket) which would naturally support Redis Cluster and expiration. |
Beta Was this translation helpful? Give feedback.
-
I saw version 5.0.0-beta.01-09-2020 in maven repository, in order to support redis based distributed token bucket,can I use this version in my project for a long support?
Beta Was this translation helpful? Give feedback.
All reactions