1. 程式人生 > 實用技巧 >redis keys*xx*替代方案

redis keys*xx*替代方案

有個同事想實現獲取以某個字元開頭的key的數量,使用了keys *命令,造成經常連線不到redis。

其實獲取key的數量,命令列可以用exists命令,如果是springboot,可以使用countExistingKeys方法,如果要查詢的key過多,可以分批次獲取。

如下為測試,測試資料很少,所以命令列直接用keys *查詢資料了,目前有如下資料

命令列

在命令列查詢存在的key

SpringBoot

@Component
public class RedisKeyCount implements CommandLineRunner{

    private Logger logger = LoggerFactory.getLogger(RedisKeyCount.class
); @Autowired private StringRedisTemplate redisTemplate; @Override public void run(String... args) throws Exception { List<String> list = new ArrayList<String>(); list.add("test_aa"); list.add("test_bb"); list.add("test_cc"); list.add(
"test_dd"); Long countExistingKeys = redisTemplate.countExistingKeys(list); logger.info("Redis count: {}",String.valueOf(countExistingKeys)); } }

結果

如果key的數量很多,可以分配獲取