Redisson--模糊查询--方法/实例

原文网址:Redisson--模糊查询--方法/实例_IT利刃出鞘的博客-CSDN博客

简介

说明

        本文介绍如何使用Redisson进行模糊查询。

Redisson模糊查询的原理

        Redis模糊查询有两种方法:KEYS、SCAN。Redisson的模糊查询都是通过SCAN来实现的:

代码

package com.example.demo.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.redisson.api.RBucket;
import org.redisson.api.RKeys;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@Api(tags = "模糊操作")
@RestController
@RequestMapping("fuzzy")
public class FuzzyOperation {

    @Autowired
    private RedissonClient redissonClient;

    @ApiOperation("添加数据")
    @GetMapping("add")
    public String add() {
        int total = 20;

        for (int i = 10; i < total + 10; i++) {
            RBucket<String> bucket = redissonClient.getBucket("hello" + i);
            bucket.set("world" + i);
        }

        return "success";
    }

    @ApiOperation("查询所有(列表)")
    @GetMapping("findList")
    public List<String> findList() {
        RKeys keys = redissonClient.getKeys();

        Iterable<String> keysByPattern = keys.getKeysByPattern("hello1*");

        List<String> result = new ArrayList<>();
        for (String s : keysByPattern) {
            result.add(s);
        }

        return result;
    }

    @ApiOperation("查询特定个数(列表)")
    @GetMapping("findLimitList")
    public List<String> findLimitList() {
        RKeys keys = redissonClient.getKeys();

        Iterable<String> keysWithLimit = keys.getKeysWithLimit("hello1*", 5);

        List<String> result = new ArrayList<>();
        for (String s : keysWithLimit) {
            result.add(s);
        }

        return result;
    }

    @ApiOperation("删除")
    @GetMapping("delete")
    public void delete() {
        RKeys keys = redissonClient.getKeys();

        long delete = keys.deleteByPattern("hello1*");
    }
}

测试

先插入数据:

测试1:查出所有数据

测试2:查出前5个数据

猜你喜欢

转载自blog.csdn.net/feiying0canglang/article/details/126567902
今日推荐