redis的模糊查询
rdis的模糊查询一般有两种方法:
第一种是keys,这个只适合在本地上或者测试上玩,在数据大的时候,用keys来查询,可以说宣告准备跑路吧,查询一次就是查询全部,会堵塞进程
第二种是scan,这种可以避免keys的问题,sacn分多次查询。避免了进程堵塞。
补充说明,之前有漏掉一个 Set messages = new HashSet<> ();,还有一个重大bug,就是没有做关闭连接 jedis.close ();,会出现重大隐患,超过最大连接数量。
scan的代码:
private void SelectReids() {
//获取redis的url和端口
Jedis jedis = new Jedis (HOST,PORT);
//存储查询出来的redis数据
List<String> list = new ArrayList<>();
//迭代后的redis数据
Set<String> messages = new HashSet<> ();
//把key和数量放到scanParams
ScanParams scanParams = new ScanParams();
//添加key到scanParams
scanParams.match ( key );
//添加要查询的条数到scanParams
scanParams.count ( 10);
//设置游标为0
String cursor=ScanParams.SCAN_POINT