次のコマンドを使用してredis
キューのレコードをトリムしようとしました。しかし、残念なことに、リストに1つの項目しかない場合にトリムできません。Redisリストにレコードが1つしかないときにltrimできない
ltrim key, -1, 0;
次のコマンドを使用してredis
キューのレコードをトリムしようとしました。しかし、残念なことに、リストに1つの項目しかない場合にトリムできません。Redisリストにレコードが1つしかないときにltrimできない
ltrim key, -1, 0;
コマンドの場合、インデックスは0から始まります。 0
は最初の要素のインデックスであり、-1
は最後の要素のインデックスです。 start_index
がstop_index
より大きい場合、Redisはリストを消去します。つまり、key
が削除されます。上記の定義に
ベース、のは、あなたのコマンドを見てみましょう:
ltrim key -1 0
start_index
は、最後の要素のインデックスすなわち、-1
あり、そしてstop_index
は、最初の指標、すなわち0であります素子。
リストに複数の要素がある場合、start_index
はstop_index
より大きい。この場合、リスト/ key
が削除されます。ただし、リストに1つの要素しかない場合は、start_index
とstop_index
の両方がリストの最初の(最後の)要素のインデックスになります。コマンドは、ltrim key 0 0
と同じ効果があります。このコマンドを使用すると、Redisはリストの最初の要素(唯一の要素)を保持し、リストはにトリムされません。
ところで、リストを削除しますか?その場合は、del key
に電話してください。