/** * 功能说明: * 功能作者: * 创建日期: * 版权归属:每特教育|蚂蚁课堂所有 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. 研究Electron主进程、渲染进程、webview之间的通讯

    背景 由于某个Electron应用,需要主进程.渲染进程.webview之间能够互相通讯. 不过因为Electron仅提供了主进程与渲染进程的通讯,没有渲染进程之间或渲染进程与webview之间通讯的 ...

  2. 5. xadmin 后台搭建

    要维护他人产权,就不喽了,直接飞机 Django1.11.11使用xadmin的方法(一: 快速安装篇):https://www.jianshu.com/p/bcb74595213e Django1. ...

  3. NioEventLoopGroup初始化

    本文是我对Netty的NioEventLoopGroup及NioEventLoop初始化工作的源码阅读笔记, 如下图,是Netty的Reactor线程模型图,本文描述NioEventLoopGroup ...

  4. python接口自动化(三十四)-封装与调用--函数和参数化(详解)

    简介 前面虽然实现了参数的关联,但是那种只是记流水账的完成功能,不便于维护,也没什么可读性,随着水平和技能的提升,再返回头去看前边写的代码,简直是惨不忍睹那样的代码是初级入门的代码水平都达不到.接下来 ...

  5. STM32F0_HAL库驱动描述——HAL驱动程序概述

    HAL库文件结构: HAL驱动文件: 外设驱动API文件和头文件:包含了常见主要的通用API,其中ppp表示外设名称,如adc.usart.gpio.irda等: stm32f0xx_hal_ppp. ...

  6. MyBatis 使用枚举或其他对象

    From<Mybatis从入门到精通> 1.笔记: <!-- 6.3 使用枚举或者其他对象 6.3.1 使用MyBatis提供的枚举处理器 不懂: 因为枚举除了本身的字面值外,还可以 ...

  7. Mac上pycharm集成pyspark

    前提: 1.已经安装好spark.我的是spark2.2.0. 2.已经有python环境,我这边使用的是python3.6. 一.安装py4j 使用pip,运行如下命令: pip install p ...

  8. pdo类的使用

    使用方法 2.php <?php require_once "./mypdo.php"; $pdo = DAOPDO::getInstance('localhost', 'r ...

  9. sonarlint在idea&eclipse中安装与使用

    介绍 ​ 代码质量管理的开源平台,用于管理源代码的质量 通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管 ...

  10. mysql查看视图用户

    select `DEFINER` from  information_schema.VIEWS;