Сортированный набор может быть полезен для этого, но сначала вам нужно перенести (инициализировать) свои методы в отсортированный набор с их начальными оценками. Для простоты я предположил, что у вас есть три метода. Поскольку имена методов уникальны, set
подойдет для вашего варианта использования. Score
будет использоваться для отслеживания количества использований.
- Используя
ZADD
установить 0
счет для каждого метода. (инициализация, будет выполнено один раз) - Используйте
ZRANGE methods 0 0
, чтобы получить метод с наименьшей оценкой (используется меньше) - После получения имени метода с помощью ZRANGE, используйте
ZINCRBY
для увеличения оценки метод (счетчик использования приращения)
127.0.0.1:6379> ZADD methods 0 method1 0 method2 0 method3
(integer) 3
127.0.0.1:6379> ZRANGE methods 0 -1 WITHSCORES
1) "method1"
2) "0"
3) "method2"
4) "0"
5) "method3"
6) "0"
127.0.0.1:6379> ZRANGE methods 0 0
1) "method1"
127.0.0.1:6379> ZINCRBY methods 1 method1
"1"
127.0.0.1:6379> ZRANGE methods 0 0
1) "method2"
127.0.0.1:6379> ZINCRBY methods 1 method2
"1"
127.0.0.1:6379> ZRANGE methods 0 0
1) "method3"
127.0.0.1:6379> ZINCRBY methods 1 method3
"1"
127.0.0.1:6379> ZRANGE methods 0 -1 WITHSCORES
1) "method1"
2) "1"
3) "method2"
4) "1"
5) "method3"
6) "1"
127.0.0.1:6379> ZRANGE methods 0 0
1) "method1"