Comments (2)
Created unit test:
@Test
public void testMD5Sharding() throws Exception {
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(3);
shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT));
shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 1));
shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 2));
Sharded<Jedis, JedisShardInfo> sharded = new Sharded<Jedis, JedisShardInfo>(shards,
Hashing.MD5);
int shard_6379 = 0;
int shard_6380 = 0;
int shard_6381 = 0;
for (int i = 0; i < 1000; i++) {
JedisShardInfo jedisShardInfo = sharded.getShardInfo(Integer.toString(i));
switch (jedisShardInfo.getPort()) {
case 6379:
shard_6379++;
break;
case 6380:
shard_6380++;
break;
case 6381:
shard_6381++;
break;
default:
fail("Attempting to use a non-defined shard!!:" + jedisShardInfo);
break;
}
// System.out.println("key=" + i + " shard=" + sharded.getShardInfo(Integer.toString(i)));
}
System.out.println("6379:" + shard_6379);
System.out.println("6380:" + shard_6380);
System.out.println("6381:" + shard_6381);
assertTrue(shard_6379 > 300 && shard_6379 < 400);
assertTrue(shard_6380 > 300 && shard_6380 < 400);
assertTrue(shard_6381 > 300 && shard_6381 < 400);
from jedis.
Fixed and pushed to master.
Btw, added a small benchmark between MD5 and Murmur. It seems like Murmur is almost 71% faster than MD5... I knew it should be faster, but not 71%!!! This is great! :)
from jedis.
Related Issues (20)
- Integrate JUnit reporter in the CI, dorny/reporter
- Check tests that force Redis failover, maybe separate them
- Add pre-commit linting to the repo
- Check tests that are commented out
- Speed up slow tests, or separate them out in their own jobs
- Run parallel jobs
- Ensure local development can run tests easily
- Make tests idempotent
- redis.clients.jedis.exceptions.JedisConnectionException: Unexpected end of stream. - issue with jedis 5.1.0 HOT 4
- jedis subscription not listening to thread interrupted signal HOT 3
- Add support for CLUSTER LINKS command HOT 1
- Add support for HSCAN [NOVALUES]
- Add command filter for CLIENT KILL to support maximum age via [MAXAGE] option
- Support XREAD, XREADGROUP reading from last message of stream
- Supporting redis unstable commands
- [question]Does jedis support jdk21? HOT 2
- How to use RedisTimeSeriesCommands with jedis HOT 1
- Pipelined transaction-handling: watch + get & multi + set
- [Suggested change] Log a warning when `ConnectionFactory.validateObject` determines the connection is no longer connected and/or the ping fails HOT 1
- Reduce the log level of validateObject to WARN HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jedis.