SpringBoot 集成Redis 过程
redis 介绍: redis 服务
redis (remote dictionary server) 是一个由salvatore sanfilippo 完成的key-value存储系统,是跨平台的非关系型数据库。
redis 是一个开源的使用ansi c语言编写、遵循bsd 协议的、支持网络、可基于内存、分布式、可选择持久性的键值对存储数据库,并提供多语言的api。
redis 通常被认为是数据结构服务器,其值可以是字符串、哈希、列表、集合以及有序集合。
redis 优点
异常快,每秒可以执行大约110000次写(set)操作
每秒可执行大约81000次读(get)操作
支持丰富的数据结构
操作具有原子性, 所有redis 操作都是原子操作,这确保了两个客户端并发访问,redis 服务器能接收更新的值。
多使用工具,缓存,消息队列(redis 本地支持发布/订阅),应用程序中的任何短期数据。
redis 安装
下载地址:
https://github.com/msopentech/redis/releases
redis 支持32位和64 位,下载完成后,解压后,文件夹下面包含许多子文件,打开cmd 窗口,将其切换到redis 目录下,输入命名:
d:\sdk\redis-x64-5.0.9 redis-server.exe redis.windows.conf
redis是什么
redis是现在最受欢迎的nosql数据库之一,redis是一个使用ansi c编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库,其具备如下特性:
- 基于内存运行,性能高效
- 支持分布式,理论上可以无限扩展
- key-value存储系统
- 开源的使用ansi c语言编写、遵守bsd协议、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api
相比于其他数据库类型,redis具备的特点是:
- c/s通讯模型
- 单进程单线程模型
- 丰富的数据类型
- 操作具有原子性
- 持久化
- 高并发读写
- 支持lua脚本
如果想使用redis 启动更加容易的话,可以使用 将redis 安装路径加入到环境变量中,直接点击 redis-server.exe 即可启动redis 服务。
springboot 集成redis 过程
1. 在pom.xml 中配置相关依赖 jar
<dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-data-redis</artifactid> </dependency>
2.在springboot 中配置核心文件
在application.properties 文件下添加配置redis 信息
# 配置redis spring.redis.host:localhost spring.redis.password= spring.redis.port=6379
3. redis 配置类及其使用
redis 配置类
// redisconfig redisconfig 配置 @configuration public class redisconfig { /** * key redis serializer: {@link stringredisserializer} and * key redis serializer: {@link jackson2jsonredisserializer} **/ @bean public redistemplate<string, object> redistemplate(redisconnectionfactory factory) { // 创建对象 redistemplate<string, object> template = new redistemplate<>(); jackson2jsonredisserializer valueredisserializer = new jackson2jsonredisserializer(object.class); //设置redis的value为json格式,并存储对象信息的序列化类型 objectmapper objectmapper = new objectmapper(); objectmapper.setvisibility(propertyaccessor.all, jsonautodetect.visibility.any); objectmapper.enabledefaulttyping(objectmapper.defaulttyping.non_final); valueredisserializer.setobjectmapper(objectmapper); // 创建一个keyredisserializer redisserializer keyredisserializer = new stringredisserializer(); // 设置信息 template.setkeyserializer(keyredisserializer); template.setvalueserializer(valueredisserializer); template.sethashkeyserializer(keyredisserializer); template.sethashvalueserializer(valueredisserializer); template.setconnectionfactory(factory); template.afterpropertiesset(); return template; } // redisutils() 方法 @bean public redisutils redisutils(@autowired redistemplate redistemplate) { return new redisutils(redistemplate); } }
redis 工具类, 首先redis 的增删改查等操作,针对多种数据类型的数据
/** * redis工具类 * * @author jone */ // redisutils @slf4j public class redisutils { // 初始化变量 private static logger logger = loggerfactory.getlogger(redisutils.class); private static redistemplate redistemplate; public redisutils(redistemplate redistemplate) { this.redistemplate = redistemplate; } // =============================common============================ /** * 判断key是否存在 * * @param key 键 * @return true 存在 false不存在 */ public boolean haskey(string key) { try { return redistemplate.haskey(key); } catch (exception e) { logger.error("判断key是否存在异常: {}", e); return false; } } /** * 普通缓存获取 * * @param key 键 * @return 值 */ public object get(string key) { return key == null ? null : redistemplate.opsforvalue().get(key); } /** * 删除 * @param key * @return */ public boolean del(string ... key){ if(key!=null&&key.length>0){ redistemplate.delete(key[0]); return true; }else{ redistemplate.delete(collectionutils.arraytolist(key)); return true; } } return false; } // set jihe public set getkeys(){ return redistemplate.keys("*"); } /** * 普通缓存放入 * * @param key 键 * @param value 值 * @return true成功 false失败 */ public boolean set(string key, object value) { try { redistemplate.opsforvalue().set(key, value); return true; } catch (exception e) { logger.error("set异常: {}", e); return false; } } }
配置完备之后,自动配置redistemplate ,需要操作redis 的类中注入redisteplate,如下所示:
// 使用redistemplate @autowired private redistemplate<string, string> redistemplate; @autowired private redistemplate<object, object> redistemplate;
以上就是springboot 集成redis 过程的详细内容,更多关于springboot redis实战的资料请关注其它相关文章!
推荐阅读
-
详解Spring极速集成注解redis实录
-
SpringBoot缓存详解并整合Redis架构
-
springboot2.x集成swagger的方法示例
-
SpringBoot2.x+Redis+nginx实现session共享和负载均衡
-
完整SpringBoot Cache整合redis缓存(二)
-
【转】Linux系统安装Redis详细过程
-
Spring boot 集成 Druid 数据源过程详解
-
SpringBoot整合Redis、ApachSolr和SpringSession的示例
-
springboot使用Mybatis(xml和注解)过程全解析
-
从安装到使用springboot集成RocketMq4.5.2