您的位置:首页技术文章
文章详情页

SpringBoot 集成Redis 过程

【字号: 日期:2023-03-07 14:28:59浏览:9作者:猪猪

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:sdkRedis-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 信息

# 配置redisspring.redis.host:localhostspring.redis.password=spring.redis.port=6379

3. Redis 配置类及其使用

Redis 配置类

// RedisConfig redisconfig 配置@Configurationpublic 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);​// 创建一个keyRedisSerializerRedisSerializer 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@Slf4jpublic 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 @Autowiredprivate RedisTemplate<String, String> redisTemplate;​@Autowired private RedisTemplate<Object, Object> redisTemplate;

以上就是SpringBoot 集成Redis 过程的详细内容,更多关于Springboot Redis实战的资料请关注好吧啦网其它相关文章!

标签: Spring
相关文章: