我正在尝试为我的 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"
我认为这是因为 hasmaps 存储为字节数据,但无论如何我可以按字母顺序对它们进行排序吗?
我也尝试过使用排序功能提供的 alpha 参数,但它似乎不起作用
SORT collection by name desc ALPHA