AWS redis クラスターにクエリ機能を実装しようとしています。すべてのデータをハッシュ マップとして保存し、インデックス付きフィールドごとに SortedSet も作成しました。
クエリを受け取るたびに、SortedSet にクエリを実行して ID を見つけます。クエリには、AND/OR 条件に基づいてマージされる複数のインデックスも含まれる場合があります。ID の最終セットを取得したら、いくつかのフィールドに基づいてデータを並べ替える必要があります。したがって、基本的には、IDに一致するハッシュマップのリストを取得しています。ハッシュマップは以下のようになります
HSET employees::1 name Arivu salary 100000 age 30
HSET employees::2 name Uma salary 300000 age 31
HSET employees::3 name Jane salary 100000 age 25
HSET employees::4 name Zakir salary 150000 age 28
ソート機能を使用できるように、すべてのハッシュをセットに追加しています
SADD collection employees::1 employees::2 employees::3 employees::4
文字列フィールドに基づいてソートしようとすると、ソートが機能しないようです
127.0.0.1:6379> SORT collection by name
1) "employees::2"
2) "employees::4"
3) "employees::3"
4) "employees::1"
127.0.0.1:6379> SORT collection by name desc
1) "employees::2"
2) "employees::4"
3) "employees::3"
4) "employees::1"
これは、ハスマップがバイトデータとして保存されているためだと思いますが、これらをアルファベット順に並べ替えることができますか?
sort 関数が提供する alpha param も使用してみましたが、うまくいかないようです
SORT collection by name desc ALPHA