redisはソケットレベルで長/短接続をサポートしています

Redisでは、接続はRedisクライアントとRedisサーバー間で確立されます。Redisクライアントは長接続または短接続のいずれかを使用してサーバーと通信できます。

長時間にわたって接続を維持する長接続では、Redisクライアントはサーバーとの接続確立後に接続状態を維持し、サーバーとの通信が必要になるときに確立済みの接続を直接使用します。そうすることで、接続の頻繁な確立と切断を回避し、接続のコストを削減してパフォーマンスを向上させることができます。長接続は、サーバーとの頻繁な通信が必要とされるシナリオに適しています。

短接続は、Redisクライアントがサーバーとの通信が完了するごとに接続を閉じ、次にサーバーと通信が必要な場合は再度接続を確立するという仕組みです。不定期にサーバーと通信する必要がある、例:一括処理を行うようなタスクに向いています。

Redisクライアントの実装方式に合わせて常時接続または短時接続を設定します。多くのRedisクライアントでは、通常は常時接続がデフォルトで使用されます。

例えば、Java で作成した Redis クライアントである Jedis では、永続的な接続の設定に以下の方法があります。

Jedis jedis = new Jedis("localhost");
jedis.getClient().setKeepAlive(true); // 设置为长连接

Redis-py(Python 向け Redis クライアント)で永続接続を設定するには、以下を行います。

import redis

r = redis.Redis(host='localhost')
r.connection_pool.connection_kwargs['socket_keepalive'] = True # 设置为长连接

長期間接続の維持にはサーバー側とクライアント側の両方でサポートが必要なことに注意してください。 Redis サーバーはデフォルトで長期間接続をサポートします。

bannerAds