美文网首页
如何直接通过接口对redis进行操作

如何直接通过接口对redis进行操作

作者: 燃灯道童 | 来源:发表于2020-03-20 17:14 被阅读0次

测试中要经常修改redis数据,满足测试场景。以前的做法是把相应环境的配置写到测试中,然后对相应的redis进行增删改查的操作。

有没有一种办法,写上redis的值和操作类型,就能通过接口进行调用呢。

通过接口调用,拼接成字符串,写上相应的信息,通过链接可以直接调用。

示例(给15038887008添加值为88的redis):
https://IP:port/XXX/redis/operation
{
"key":"15038887008",
"value":"88",
"operType":"add",
"resmsg":""
}

代码如下:

import java.util.Map;
@Controller
@RequestMapping(value = "/redis")
@Api(tags = "Redis的操作")
@Slf4j
public class RedisController extends BaseController {

    @Autowired
    JedisUtil jedisUtil;

    @RequestMapping(value = "/operation" , method = RequestMethod.POST)
    @ResponseBody
    @ApiOperation(value="redis", notes="redis的操作")
    public Map updateUser(@RequestBody ReqRedisVO reqRedisVO){
        try {
            String opertype = reqRedisVO.getOperType();
            String key = reqRedisVO.getKey();
            String value = reqRedisVO.getValue();
            String resMsg = "";
            if(!StringUtil.isEmpty(key)){
                if(key.indexOf(",")!=-1){
                    String[] splitKey = key.split(",");
                    if("add".equals(opertype)){
                        String resaddall = "";
                        for (int i = 0; i < splitKey.length; i++) {
                            String resadd = jedisUtil.set(splitKey[i],value);
                            resaddall = resaddall + resadd;
                        }
                        if(resaddall.indexOf("0")!=-1){
                            resMsg = "更新过程中有部分出错,请检查。";//ok成功
                        }
                        resMsg = "redis已经更新成功,可以进行查询操作进行验证。";//ok成功
                    }else if("query".equals(opertype)){
                        resMsg = "暂不支持批量查询。";
                    }else if("del".equals(opertype)){
                        long num = jedisUtil.del(splitKey);
                        if(splitKey.length==num){
                            resMsg = "全部删除成功。";
                        }else{
                            resMsg = "遗漏"+(splitKey.length-num)+"条,请求删除共"+splitKey.length+"条,删除成功"+num+"条。";
                        }
                    }else{
                        resMsg = "操作类型选择错误,请检查。";
                    }
                }else{
                    if("add".equals(opertype)){
                        jedisUtil.set(reqRedisVO.getKey(),reqRedisVO.getValue());
                        resMsg = "redis已经更新成功,可以进行查询操作进行验证。";//ok成功
                    }else if("query".equals(opertype)){
                        value = jedisUtil.get(reqRedisVO.getKey());
                        resMsg = "查询成功";
                    }else if("del".equals(opertype)){
                        jedisUtil.del(reqRedisVO.getKey());
                        resMsg = "删除成功";
                    }else{
                        resMsg = "操作类型选择错误,请检查。";
                    }
                }
            }
            reqRedisVO.setValue(value);
            reqRedisVO.setResmsg(resMsg);
            JSONObject fromObject = JSONObject.fromObject(reqRedisVO);
            String string = fromObject.toString();
            return data(string);
        }catch (Exception e){
            log.error("" , e);
            return fail();
        }
    }
}

相关文章

  • 如何直接通过接口对redis进行操作

    测试中要经常修改redis数据,满足测试场景。以前的做法是把相应环境的配置写到测试中,然后对相应的redis进行增...

  • redis-4-列表

    通过这篇文章知道如下内容: 如何利用redis列表构造阻塞队列 懂得如何对列表进行增删改查 列表常规操作 添加 从...

  • Android ImageView通过Matrix实现图片倾斜效

    通过matrix可以直接对Bitmap进行缩放、旋转等操作,通过ImageView的setImageMatrix(...

  • 类增强

    思考:1、如何对类进行增强???2、如何预留扩展接口??? 一句话:通过代理增强,通过 包装预留扩展接口 prox...

  • 5. go 连接池

    redis 连接池说明: 说明:通过 golang 对redis 操作,还可以通过redis 连接池,流程如下: ...

  • 07.对象

    1.简介: redis 不直接通过数据结构操作数据,通过对象操作数据。 2.对象的类型和编码: redis 通...

  • Redis 第10章 Redis Cluster

    第10章 Redis Cluster 引入集群问题:容量不够,redis如何进行扩容?并发写操作, redis...

  • Redis源码剖析之GEO——Redis是如何高效检索地理位置的

    Redis GEO 用做存储地理位置信息,并对存储的信息进行操作。通过geo相关的命令,可以很容易在redis中存...

  • 在EL-Admin,SpringBoot框架中整合Redis步骤

    SpringBoot操作Redis时实际上不是SpringBoot框架直接操作的,是通过spring-boot-s...

  • 数据结构-栈

    栈的特点 先进后出 栈的相关操作都是通过栈顶位置进行相关操作的 栈的接口抽象 栈可以通过线性表直接实现(链表、数组...

网友评论

      本文标题:如何直接通过接口对redis进行操作

      本文链接:https://www.haomeiwen.com/subject/lkwlyhtx.html