Redis常用客户端和工具类封装

1.常用客户端:RedisDesktopManager

  http://www.downza.cn/soft/210734.html

2.封装redis工具类并操作

RedisClient

package net.xdclass.redis_project.utils;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;

@Component
public class RedisClient {
   
    @Autowired
    private StringRedisTemplate redistpl;
    
    /**
     * 设置(key,value)到redis中
     */
    public boolean set(String key,String value) {
        try {
            redistpl.opsForValue().set(key, value);
            return true;
        }catch (Exception e) {
            e.printStackTrace();
            return false;
        }
        
    }
    
    
    /**
     * 通过key获取缓存里面的值
     */
    public String get(String key) {
        return  redistpl.opsForValue().get(key);
    }
}
 

Json对象序列化工具(对象和字符串之间的转化)

package net.xdclass.redis_project.utils;

import java.io.IOException;

import org.springframework.util.StringUtils;

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonUtils {

    private static ObjectMapper objectMapper = new ObjectMapper();
    
    //对象转字符串
    public static <T> String obj2String(T obj){
        if (obj == null){
            return null;
        }
        try {
            return obj instanceof String ? (String) obj : objectMapper.writeValueAsString(obj);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    
    //字符串转对象
    public static <T> T string2Obj(String str,Class<T> clazz){
        if (StringUtils.isEmpty(str) || clazz == null){
            return null;
        }
        try {
            return clazz.equals(String.class)? (T) str :objectMapper.readValue(str,clazz);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
}
 

实体类

package net.xdclass.redis_project.domain;

import java.util.Date;

public class User {

    private int age;
    
    private String pwd;
    
    private String phone;
    
    private Date createTime;

    
    
    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public User() {
        super();
    }

    public User(int age, String pwd, String phone, Date createTime) {
        super();
        this.age = age;
        this.pwd = pwd;
        this.phone = phone;
        this.createTime = createTime;
    }

    
    
    
}
 

 

响应结果类

package net.xdclass.redis_project.domain;

import java.io.Serializable;

/**
 * 功能描述:响应结果类
 *
 * <p>
 * 创建时间:Apr 29, 2018 4:08:36 PM
 * </p>
 *
 * @作者 小D课堂 小D
 */
public class JsonData implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    private Integer code; // 状态码 0 表示成功,1表示处理中,-1表示失败
    private Object data; // 数据
    private String msg;// 描述

    public JsonData() {
    }

    public JsonData(Integer code, Object data, String msg) {
        this.code = code;
        this.data = data;
        this.msg = msg;
    }

    // 成功,传入数据
    public static JsonData buildSuccess() {
        return new JsonData(0, null, null);
    }

    // 成功,传入数据
    public static JsonData buildSuccess(Object data) {
        return new JsonData(0, data, null);
    }

    // 失败,传入描述信息
    public static JsonData buildError(String msg) {
        return new JsonData(-1, null, msg);
    }

    // 失败,传入描述信息,状态码
    public static JsonData buildError(String msg, Integer code) {
        return new JsonData(code, null, msg);
    }

    // 成功,传入数据,及描述信息
    public static JsonData buildSuccess(Object data, String msg) {
        return new JsonData(0, data, msg);
    }

    // 成功,传入数据,及状态码
    public static JsonData buildSuccess(Object data, int code) {
        return new JsonData(code, data, null);
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    @Override
    public String toString() {
        return "JsonData [code=" + code + ", data=" + data + ", msg=" + msg
                + "]";
    }

}
 

测试类

package net.xdclass.redis_project.controller;

import java.util.Date;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import net.xdclass.redis_project.domain.JsonData;
import net.xdclass.redis_project.domain.User;
import net.xdclass.redis_project.utils.JsonUtils;
import net.xdclass.redis_project.utils.RedisClient;

@RestController
@RequestMapping("/api/v1/redis")
public class RedisController {

     @Autowired
     private StringRedisTemplate redisTemplate;
     
     @Autowired
     private RedisClient redis;
     
     @GetMapping("add")
     public Object add() {
         //redisTemplate.opsForValue().set("name", "circ");
         redis.set("bing", "王昭君");
         return new JsonData().buildSuccess();
     }
     
     @GetMapping("get")
     public Object get() {
         //String value = redisTemplate.opsForValue().get("name");
         String value = redis.get("bing");
         return new JsonData().buildSuccess(value);
     }
     
     @GetMapping("saveUser")
     public Object saveUser() {
         User user = new User(11, "123", "888", new Date());
         String user2Str = JsonUtils.obj2String(user);
         boolean falg = redis.set("base:user:11",user2Str);
         return new JsonData().buildSuccess(falg);
     }
     
     @GetMapping("getUser")
     public Object getUser() {
         String userStr = redis.get("base:user:11");
         User user = JsonUtils.string2Obj(userStr, User.class);
         return new JsonData().buildSuccess(user);
     }
}
 

 

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值