基于springboot开发中,对于缓存数据获取,重复或者延迟数据等,redis的使用就显得方便很多。现在简单的做本地redis的搭建。

(1) 下载window版本的redis安装 (见我的资源下载)

配置:port根据要求,可改变,启动redis-service.exe即启动,启动redis-cli.exe可进行界面语句操作,查询

(2) sprigboot配置

application.properties配置:

# Redis数据库索引(默认为0)
spring.redis.database=0
## Redis服务器地址
spring.redis.host=127.0.0.1
## Redis服务器连接端口
spring.redis.port=6379
## Redis服务器连接密码(默认为空)
spring.redis.password=
## 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
## 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1ms
## 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
## 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
## 连接超时时间(毫秒)
spring.redis.jedis.timeout=0

(3) 增加redis工具类RedisCacheUtil和泛型接口RedisCacheServer

RedisCacheServer类:

package com.study.provider.cache;import java.util.Collection;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;public interface RedisCacheServer {<T> void put(String key, T obj);<T> void put(String key, T obj, int timeout);<T> void put(String key, T obj, int timeout, TimeUnit unit);<T> T get(String key, Class<T> cls);<E,T extends Collection<E>> T get(String key, Class<E> cls, Class<T> collectionCls);<T> T putIfAbsent(String key, Class<T> cls, Supplier<T> supplier);<T> T putIfAbsent(String key, Class<T> cls, Supplier<T> supplier, int timeout);<E,T extends Collection<E>> T putIfAbsent(String key, Class<E> cls, Class<T> collectionCls, Supplier<T> supplier);boolean exists(String key);void del(String key);boolean expire(String key, long timeout, TimeUnit unit);boolean expire(String key, long timeout);void put(String key, String value);void put(String key, String value, int timeout);void put(String key, String value, int timeout, TimeUnit unit);String get(String key);void putHash(String key, Map<Object, Object> m);Map<Object, Object> getHash(String key);
}

工具类RedisCacheUtil:

package com.study.provider.cache;
import com.alibaba.fastjson.JSON;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;@Service
public class RedisCacheUtil implements RedisCacheServer{@Autowiredprivate StringRedisTemplate redisTemplate;public <T> void put(String key, T obj) {redisTemplate.opsForValue().set(key, JSON.toJSONString(obj));}public <T> void put(String key, T obj, int timeout) {put(key,obj,timeout, TimeUnit.MINUTES);}public <T> void put(String key, T obj, int timeout, TimeUnit unit) {redisTemplate.opsForValue().set(key, JSON.toJSONString(obj),timeout,unit);}public <T> T get(String key, Class<T> cls) {return JSON.parseObject(JSON.toJSONString(redisTemplate.opsForValue().get(key)), cls);}@Overridepublic <E, T extends Collection<E>> T get(String key, Class<E> cls, Class<T> collectionCls) {return null;}/***public <E, T extends Collection<E>> T get(String key, Class<E> cls, Class<T> collectionCls) {return JSON.parseArray(JSON.toJSONString(redisTemplate.opsForValue().get(key)), cls, collectionCls);}**/public <T> T putIfAbsent(String key, Class<T> cls, Supplier<T> supplier) {T t=get(key,cls);if(null==t){t=supplier.get();if(null!=t)put(key,t);}return t;}public <T> T putIfAbsent(String key, Class<T> cls, Supplier<T> supplier, int timeout) {T t=get(key,cls);if(null==t){t=supplier.get();if(null!=t)put(key,t,timeout);}return t;}public <E, T extends Collection<E>> T putIfAbsent(String key, Class<E> cls, Class<T> collectionCls,Supplier<T> supplier) {T t=get(key,cls,collectionCls);if(null==t || t.isEmpty()){t=supplier.get();if(null!=t && t.size()>0)put(key,t);}return t;}public boolean exists(String key) {return redisTemplate.hasKey(key);}public void del(String key) {redisTemplate.delete(key);}public boolean expire(String key, long timeout, TimeUnit unit) {return redisTemplate.expire(key, timeout, unit);}public boolean expire(String key, long timeout) {return redisTemplate.expire(key, timeout, TimeUnit.MINUTES);}public void put(String key, String value) {redisTemplate.opsForValue().set(key, value);}public void put(String key, String value, int timeout) {put(key,value,timeout,TimeUnit.MINUTES);}public void put(String key, String value, int timeout, TimeUnit unit) {redisTemplate.opsForValue().set(key, value, timeout, unit);}public String get(String key) {return (String) redisTemplate.opsForValue().get(key);}public void putHash(String key, Map<Object,Object> m) {redisTemplate.opsForHash().putAll(key, m);}public Map<Object, Object> getHash(String key) {try{return redisTemplate.opsForHash().entries(key);}catch(Exception e){return null;}}
}

(4) 使用案例:

package com.study.provider.controller;import com.study.provider.cache.RedisCacheUtil;
import com.study.provider.mapping.IDesignMapping;
import com.study.provider.util.ResultUtils;
import com.study.provider.vo.DesignVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.Map;@Controller
public class ProviderController {@Autowiredprivate IDesignMapping designMapping;@Autowiredprivate RedisCacheUtil redisCacheUtil;@RequestMapping("/provider")@ResponseBodypublic Map<String, Object> provider(){System.out.println("welcome to provider");DesignVo arg0 = new DesignVo();arg0.setDesignDesc("xiaoxin");arg0.setDesignMethod("xiaoxin is a good boy");arg0.setDesignType("xiaoxin is a love boy");redisCacheUtil.put("testkey2",arg0);//designMapping.saveDesignModel(arg0)return ResultUtils.getSuccessResultData();}
}

(5) window可查看

(三) springboot的本地redis简要配置及使用案例相关推荐

  1. SpringBoot:整合Redis(概述,数据类型,持久化,RedisTemplate)

    1,Redis概述 1.1,Redis基本概念 在传统的Java Web项目中,使用数据库进行存储数据,但是有一些致命的弊端,这些弊端主要来自于性能方面.比如一些商品抢购的场景,或者是主页访问量瞬间较 ...

  2. Redis基础入门及实战案例

    Redis 1.NoSQL简介 ​ NoSQL,泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网 ...

  3. Redis——学习之路三(初识redis config配置)

    我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息. 我们就 ...

  4. Redis 安装配置开机启动整合SpringBoot以及配置文件详解

    安装 Redis # 下载Redis wget https://download.redis.io/releases/redis-6.0.9.tar.gz# 解压 redis tar -zxvf re ...

  5. SpringBoot集成Redis和配置Redis做缓存

    Redis介绍 Redis是一个开源的.高性能的.基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求,直观的存储结构使得通过程序交互十分简单. Redis数据库中所有 ...

  6. SpringBoot之单Redis与哨兵集群连接配置

    引入Redis依赖 <!-- 指定SpringBoot版本 --><parent><groupId>org.springframework.boot</gro ...

  7. Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo

    Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...

  8. Redis 主从配置和参数详解

    安装redis 下载redis wget http://download.redis.io/releases/redis-3.0.7.tar.gz解压redis tar -xvf redis-3.0. ...

  9. redis.conf配置选项如下

    redis.conf配置选项如下 daemonize 是否以后台进程运行,默认为no pidfile 如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid bind 绑定主 ...

最新文章

  1. keras提取模型中的某一层_keras获得某一层或者某层权重的输出实例
  2. 【AI参赛经验】汉字书法识别比赛经验心得——by:microfat_htu
  3. 毕业设计 c语言编译器的设计开发-字节代码格式设计与实现 开题报告,C语言编译器设计与实现...
  4. GRE词汇乱序版-夹生的词汇3
  5. jeasyUI的treegrid批量删除多行
  6. 一文带你学C语言,详细知识点思维导图!
  7. python向服务器请求压缩数据及解压缩数据
  8. webservice调用天气服务
  9. Go编译exe可执行文件去掉运行时的CMD窗口
  10. lua运算与php运算符,Lua 运算符
  11. python 优先队列_示例讲解:python队列原理及实现方法与操作思路
  12. python 图像识别男女_python实现图像识别功能
  13. 第一课:OD软件界面基本介绍
  14. SPSS实现单因素方差分析
  15. 计算机网络的三大功能,计算机网络的三大主要功能是什么
  16. 微信信息如何在服务器加密,微信 消息加解密说明
  17. gui实现2048小游戏
  18. 万众期待: iebook超级精灵2008电子杂志制作套件全球发布
  19. 拉格朗日插值在MATLAB的实现
  20. Docker搭建SonarQube代码质量检测工具

热门文章

  1. DRF 中Request对象中获得数据
  2. html5蒙版,html5 – 如何使用CSS创建三角形剪辑蒙版
  3. Android入门教程四十五之ExpandableListView(可折叠列表)的基本使用
  4. 重学 Java 设计模式:实战装饰器模式(SSO单点登录功能扩展,增加拦截用户访问方法范围场景)
  5. PVE虚拟服务器配置,虚拟化环境搭建Proxmox Virtual Environment(PVE)系统安装部署图文教程说明...
  6. 安全感----------------女性的安全感的起点,来自于冒险性 为何会拿好人卡(二) 安全感是什么?...
  7. 雷军建议:别做跑龙套的项目经理
  8. PTA 7-3 插入排序还是归并排序 (25分)
  9. 日本研发充电公路 电动汽车告别笨重电池(图)
  10. Java打飞机小游戏(附完整源码)