• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库,其具备如下特性:

    相比于其他数据库类型,Redis具备的特点是:

    如果想使用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 RedisTemplateString, Object> redisTemplate(RedisConnectionFactory factory) {
            // 创建对象
            RedisTemplateString, 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!=nullkey.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 RedisTemplateString, String> redisTemplate;
    ​
    @Autowired 
    private RedisTemplateObject, Object> redisTemplate;

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

    您可能感兴趣的文章:
    • springboot利用redis、Redisson处理并发问题的操作
    • springboot2.5.0和redis整合配置详解
    • Springboot基础之RedisUtils工具类
    • SpringSecurity整合springBoot、redis实现登录互踢功能
    • Springboot Redis设置key前缀的方法步骤
    • 详解springboot中各个版本的redis配置问题
    • springboot+redis 实现分布式限流令牌桶的示例代码
    • redis 集群批量操作实现
    • SpringBoot+redis配置及测试的方法
    • SpringBoot集成Redis数据库,实现缓存管理
    上一篇:详解Redis基本命令与使用场景
    下一篇:深入理解redis中multi与pipeline
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    SpringBoot 集成Redis 过程 SpringBoot,集成,Redis,过程,