redis の 2 つの大きなセットの交点の長さ (SCARD) が必要です。
だから、これは私が望むものを達成します:
> SINTERSTORE intermediate s:1 s:2
> SCARD intermediate
ただし、セットが大きいため、中間値を保存したくありません。概念的に私が欲しい:
> SCARD (SINTER s:1 s:2)
おそらくLuaスクリプトを使用して、単一のコマンドでこれを実現する方法はありますか? または、アプリケーション言語でスクリプトを作成し、完了したら中間値を削除するのが最善の策ですか? たとえば、python と redis-py を使用する場合:
>>> r = redis.Redis(...)
>>> pipe = r.pipeline()
>>> res = pipe.sinterstore('intermediate', 's:1', 's:2').scard('intermediate').delete('intermediate').execute()
>>> print res[1]