/** * 功能说明: * 功能作者: * 创建日期: * 版权归属:每特教育|蚂蚁课堂所有 www.itmayiedu.com */package com.redis.service;

import java.util.Collection;import java.util.Map;import java.util.Set;import java.util.concurrent.TimeUnit;

import com.alibaba.fastjson.JSON;import com.fasterxml.jackson.databind.util.JSONPObject;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframework.stereotype.Component;

import ch.qos.logback.core.util.TimeUtil;

//  springboot 2.0 整合redis@Componentpublic class RedisService {

   @Autowired   private StringRedisTemplate stringRedisTemplate;   @Autowired   private RedisTemplate<Object,Object> template;

   public void set(String key, Object object, Long time) {      // 让该方法能够支持多种数据类型存放      // 如果存放时Set类型      if (object instanceof Set) {         setSet(key, object);      }      setString(key,object);

      // 设置有效期

      if (time != null) {         stringRedisTemplate.expire(key, time, TimeUnit.SECONDS);      }

   }

   public void setString(String key, Object object) {      String value = toJson(object);      // 存放string类型      stringRedisTemplate.opsForValue().set(key, value);   }   public void setMap(String key,Object object){      Map value=(Map) object;      stringRedisTemplate.opsForValue().multiGet((Collection<String>) value);   }

   public void setSet(String key, Object object) {      Set<String> valueSet = (Set<String>) object;      for (String string : valueSet) {         stringRedisTemplate.opsForSet().add(key, string);      }   }

   public String getString(String key) {      System.out.println("获取的数据格式是"+stringRedisTemplate.opsForValue().get(key) ) ;      return stringRedisTemplate.opsForValue().get(key);   }   /**    * Object转成JSON数据    */   private String toJson(Object object){      if(object instanceof Integer || object instanceof Long || object instanceof Float ||            object instanceof Double || object instanceof Boolean || object instanceof String){         return String.valueOf(object);      }      System.out.println("存入的数据格式是"+JSON.toJSONString(object));      return JSON.toJSONString(object);   }

   public  <T> T fromJson(String json, Class<T> clazz){      return JSON.parseObject(json, clazz);   }}

java封装 redis 操作 对象,list集合 ,json串的更多相关文章

  1. openresty开发系列27--openresty中封装redis操作

    openresty开发系列27--openresty中封装redis操作 在关于web+lua+openresty开发中,项目中会大量操作redis, 重复创建连接-->数据操作-->关闭 ...

  2. 类对象序列化为json串,json串反序列化为类对象

    1.类对象序列化为json串: 方法一: class P(object): def __init__(self,name,age,sex): self.name=name self.age=age s ...

  3. Java连接Redis,存储对象获取对象()byte和json),连接池

    Java连接Redis Jedis连接Redis,Lettuce连接Redis Jedis连接Redis 1. 创建maven项目 2. 引入依赖 <dependencies> <d ...

  4. 封装redis操作 php版本

    <?php namespace App\Service; use App\Service\BaseService; use Illuminate\Support\Facades\Redis; / ...

  5. python对象转化为json串、json串转化为python串

    1.1. JSON简介: JavaScript Object Notation(JavaScript对象表示法) JSON是存储和交换文本信息的语法.类似XML JSON比XML更小.更快.更易解析 ...

  6. Python: 自定义类对象序列化为Json串

    之前已经实现了Python: Json串反序列化为自定义类对象,这次来实现了Json的序列化. 测试代码和结果如下: import Json.JsonTool class Score: math = ...

  7. Java封装Redis常用操作

    package com.advance.Redis; import org.apache.log4j.Logger; import org.testng.annotations.Test; impor ...

  8. Java的redis 操作类-优化通用版本

    java操作redis多节点处理方式;http://blog.itpub.net/29254281/viewspace-1188644/首先maven引入依赖包 <dependency> ...

  9. Redis学习---Redis操作之有序集合

    有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来做排序. zadd(name, *args, **kw ...

随机推荐

  1. 6.秋招复习简单整理之请你谈谈JDBC的反射,以及它的作用?

    通过反射com.mysql.jdbc.Driver类,实例化该类时会调用该类的静态代码块,该代码块会去java的DriverManager类中注册自己,DriverManager管理所有已注册的驱动类 ...

  2. SpringCloud解析之Ribbon

    Ribbon是分布式微服务架构中负载均衡的一个解决方案,我们只需要引入ribbon依赖,然后初始化一个RestTemplate对象,在其上添加@LoadBalanced注解,就可以实现请求的负载均衡, ...

  3. 好用的在线画图工具processon

    ProcessOn是一款基于SaaS的前沿.高效线上作图工具,它将Visio.Xmind等专业作图工具搬到了"云端" 注册链接:https://www.processon.com/ ...

  4. Bzoj 3124: [Sdoi2013]直径 题解

    3124: [Sdoi2013]直径 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1222  Solved: 580[Submit][Status] ...

  5. jekyll搭建个人博客2

    目录 个性化 jekyll目录结构 修改个人信息 修改头像 修改背景颜色 关于头像的效果 图片问题 域名 个性化 jekyll目录结构 个性化就是要对文件内容作出修改,使得博客外观发生变化,在修改文件 ...

  6. 简易数据分析 06 | 如何导入别人已经写好的 Web Scraper 爬虫

    这是简易数据分析系列的第 6 篇文章. 上两期我们学习了如何通过 Web Scraper 批量抓取豆瓣电影 TOP250 的数据,内容都太干了,今天我们说些轻松的,讲讲 Web Scraper 如何导 ...

  7. 浅谈对static的理解

    相信很多朋友在面试过程中都遇到过关于static的相关题目,接下来我们来分析一下static. static(静态的),用来修饰成员变量,成员方法,它随着类的加载而加载,使用static修饰的数据可以 ...

  8. Java用Xom生成XML文档

    这个总结源于Java编程思想第四版18.13节的案例: 完整代码地址: Java编程思想:XML 相关Api地址: Attribute Element Document Serializer 由于案例 ...

  9. TCP协议传输大文件读取时候的问题

    TCP协议传输大文件读取时候的问题 大文件传不完的bug 我们在定义的时候定义服务端每次文件读取大小为10240, 客户端每次接受大小为10240 我们想当然的认为客户端每次读取大小就是10240而把 ...

  10. 我狠起来连自己都打---如何简单实现Azure resource自动打标签

    你是否还在为花费大量Azure Resource打标签而烦恼呢?你是否还在因为这样低效的重复劳动而痛苦呢? 在很长一段时间内,笔者既要做云架构调整,又要做日常系统维护,还要参与各种各样的项目,在这种情 ...