zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

SpringBoot 集成Redis 过程

2023-06-13 09:19:49 时间

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 启动更加容易的话,可以使用 将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);


   public RedisUtils(RedisTemplate redisTemplate) {        this.redisTemplate = redisTemplate;   }    // =============================common============================
       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;

本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 SpringBoot 集成Redis 过程