아파치 지오 코딩을 사용하여 매우 큰 값을 복제하려고합니다. 내가 기본적으로하고있는 것은 redis의 setbit 함수를 사용하는 것이다. setbit 함수에 대한 오프셋을 계속 늘리면 지오 데이 서버가 충돌합니다. 클라이언트로 geode의 redis 어댑터를 사용하고 있습니다.아파치 지오 코드 복제로 큰 값을 복제 할 수 없습니다.
import redis.clients.jedis.*;
import redis.clients.jedis.exceptions.JedisException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import redis.clients.jedis.exceptions.JedisException;
public class Test {
//address of your redis server
private static final String redisHost = "10.0.0.10";
private static final Integer redisPort = 11211;
//remember to increase sensder queue size
public void addSets() {
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(50);
poolConfig.setMaxTotal(1000);
poolConfig.setTestOnBorrow(true);
poolConfig.setTestOnReturn(true);
JedisPool pool = new JedisPool(poolConfig,redisHost, redisPort,10000000);
Jedis jedis= null;
String key = "shivd";
long [] bits = {1464236631,12373513,1488983657,1329373495,147236649,1623846793,1194510359,282099785,1758709929,1059647223,416962921,1893573065,924784087,551826057,2028436201};
//get a jedis connection jedis connection pool
try {
jedis = pool.getResource();
Pipeline pipeline = jedis.pipelined();
for (long b : bits) {
pipeline.setbit(key, b, true);
}
pipeline.multi();
pipeline.exec();
} finally {
if (jedis != null) {
jedis.close();
}
}
pool.destroy();
}
public static void main(String[] args){
Test main = new Test();
main.addSets();
//main.cal();
//main.addHash();
}
}
제한을 약간 줄이면 작동합니다. 여기 가 레디 스 어댑터를 사용하여 두 캐시 서버의 로그입니다 :
dc1.log (10.0.0.10) - I 키
dc2.log를 삽입하고 곳 (복제가 발생하는 경우)