1

Redis で Set Operations を実行して、ターゲティング用のデータを抽出およびフィルタリングしています。つまり、セットは次のように表されます

fruits={'orange','lemon','apple'}
vegetables={'tomato'}
citric={'orange','lemon','tomato'}

Jedis クライアントを使用して SUNION と SINTER を実行していますが、100 の同時実行でその夜に観察したことは、SMEMBERS のような単純な操作でも Redis サービスがタイムアウトを返します セットには 7 個以下のアイテムが含まれています

jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.maxActive = 1000;//Arguably High
jedisPoolConfig.minIdle = 300;//Arguably High
jedisPoolConfig.maxIdle = 500; //Arguably High
jedisPool = new JedisPool(jedisPoolConfig, "localhost", 6379, 1000);
jedis = jedisPool.getResource();
availableAds = new ArrayList<String>( jedis.smembers("fruits"));
jedisPool.returnResource(jedis);

Java 例外

redis.clients.jedis.exceptions.JedisConnectionException : サーバーが接続を閉じたようです。

Redis エラー ログ

クライアントからのプロトコル エラー: addr=xxxx:xxxx fd=270 idle=0 flags=N db=0 sub=0 psub=0 qbuf=96 obl=47 oll=0 events=rw cmd=smembers

テストは Amazon EC2 ミディアム インスタンス (C1.medium) で実行され、サーブレットは負荷テスト ツールとして blitz.io を使用してテストされました。

4

0 に答える 0