(三) springboot的本地redis简要配置及使用案例
基于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简要配置及使用案例相关推荐
- SpringBoot:整合Redis(概述,数据类型,持久化,RedisTemplate)
1,Redis概述 1.1,Redis基本概念 在传统的Java Web项目中,使用数据库进行存储数据,但是有一些致命的弊端,这些弊端主要来自于性能方面.比如一些商品抢购的场景,或者是主页访问量瞬间较 ...
- Redis基础入门及实战案例
Redis 1.NoSQL简介 NoSQL,泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网 ...
- Redis——学习之路三(初识redis config配置)
我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息. 我们就 ...
- Redis 安装配置开机启动整合SpringBoot以及配置文件详解
安装 Redis # 下载Redis wget https://download.redis.io/releases/redis-6.0.9.tar.gz# 解压 redis tar -zxvf re ...
- SpringBoot集成Redis和配置Redis做缓存
Redis介绍 Redis是一个开源的.高性能的.基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求,直观的存储结构使得通过程序交互十分简单. Redis数据库中所有 ...
- SpringBoot之单Redis与哨兵集群连接配置
引入Redis依赖 <!-- 指定SpringBoot版本 --><parent><groupId>org.springframework.boot</gro ...
- Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...
- Redis 主从配置和参数详解
安装redis 下载redis wget http://download.redis.io/releases/redis-3.0.7.tar.gz解压redis tar -xvf redis-3.0. ...
- redis.conf配置选项如下
redis.conf配置选项如下 daemonize 是否以后台进程运行,默认为no pidfile 如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid bind 绑定主 ...
最新文章
- keras提取模型中的某一层_keras获得某一层或者某层权重的输出实例
- 【AI参赛经验】汉字书法识别比赛经验心得——by:microfat_htu
- 毕业设计 c语言编译器的设计开发-字节代码格式设计与实现 开题报告,C语言编译器设计与实现...
- GRE词汇乱序版-夹生的词汇3
- jeasyUI的treegrid批量删除多行
- 一文带你学C语言,详细知识点思维导图!
- python向服务器请求压缩数据及解压缩数据
- webservice调用天气服务
- Go编译exe可执行文件去掉运行时的CMD窗口
- lua运算与php运算符,Lua 运算符
- python 优先队列_示例讲解:python队列原理及实现方法与操作思路
- python 图像识别男女_python实现图像识别功能
- 第一课:OD软件界面基本介绍
- SPSS实现单因素方差分析
- 计算机网络的三大功能,计算机网络的三大主要功能是什么
- 微信信息如何在服务器加密,微信 消息加解密说明
- gui实现2048小游戏
- 万众期待: iebook超级精灵2008电子杂志制作套件全球发布
- 拉格朗日插值在MATLAB的实现
- Docker搭建SonarQube代码质量检测工具
热门文章
- DRF 中Request对象中获得数据
- html5蒙版,html5 – 如何使用CSS创建三角形剪辑蒙版
- Android入门教程四十五之ExpandableListView(可折叠列表)的基本使用
- 重学 Java 设计模式:实战装饰器模式(SSO单点登录功能扩展,增加拦截用户访问方法范围场景)
- PVE虚拟服务器配置,虚拟化环境搭建Proxmox Virtual Environment(PVE)系统安装部署图文教程说明...
- 安全感----------------女性的安全感的起点,来自于冒险性 为何会拿好人卡(二) 安全感是什么?...
- 雷军建议:别做跑龙套的项目经理
- PTA 7-3 插入排序还是归并排序 (25分)
- 日本研发充电公路 电动汽车告别笨重电池(图)
- Java打飞机小游戏(附完整源码)