iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Redis在项目中的使用方法有哪些
  • 285
分享到

Redis在项目中的使用方法有哪些

2023-06-22 04:06:43 285人浏览 安东尼
摘要

本篇内容介绍了“Redis在项目中的使用方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SpringBoot中Redis相关配置po

本篇内容介绍了“Redis项目中的使用方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

SpringBootRedis相关配置

pom.xml中引入依赖

<dependency>  <groupId>redis.clients</groupId>  <artifactId>jedis</artifactId>  <version>2.9.0</version></dependency>

springboot的习惯优于配置。也在项目中使用了application.yml文件配置mysql的基本配置项。这里也在application.yml里面配置redis的配置项。

spring:  datasource:        # 驱动配置信息        url: jdbc:Mysql://localhost:3306/spring_boot?useUnicode=true&characterEncoding=utf8        username: root        passWord: root        type: com.alibaba.druid.pool.DruidDataSource        driver-class-name: com.mysql.jdbc.Driver        # 连接池的配置信息        filters: stat        maxActive: 20        initialSize: 1        maxWait: 60000        minIdle: 1        timeBetweenEvictionRunsMillis: 60000        minEvictableIdleTimeMillis: 300000        validationQuery: select 'x'        testWhileIdle: true        testOnBorrow: false        testOnReturn: false        poolPreparedStatements: true        maxOpenPreparedStatements: 20  redis:        host: 127.0.0.1        port: 6379        password: pass1234        pool:          max-active: 100          max-idle: 10          max-wait: 100000        timeout: 0

springboot中redis相关类

  • 项目操作redis是使用的RedisTemplate方式,另外还可以完全使用JedisPool和Jedis来操作redis。整合的内容也是从网上收集整合而来,网上整合的方式和方法非常的多,有使用注解形式的,有使用Jackson2JSONRedisSerializer来序列化和反序列化key value的值等等,很多很多。这里使用的是我认为比较容易理解和掌握的,基于JedisPool配置,使用RedisTemplate来操作redis的方式。

redis单独放在一个包redis里,在包里先创建RedisConfig.java文件。

RedisConfig.java

@Configuration@EnableAutoConfigurationpublic class RedisConfig {    @Bean    @ConfigurationProperties(prefix = "spring.redis.pool")    public JedisPoolConfig getRedisConfig(){        JedisPoolConfig config = new JedisPoolConfig();        return config;    }    @Bean    @ConfigurationProperties(prefix = "spring.redis")    public JedisConnectionFactory getConnectionFactory() {        JedisConnectionFactory factory = new JedisConnectionFactory();        factory.setUsePool(true);        JedisPoolConfig config = getRedisConfig();        factory.setPoolConfig(config);        return factory;    }    @Bean    public RedisTemplate<?, ?> getRedisTemplate() {        JedisConnectionFactory factory = getConnectionFactory();        RedisTemplate<?, ?> template = new StringRedisTemplate(factory);        return template;    }}
  • 在包里创建RedisService接口的实现类RedisServiceImpl,这个类实现了接口的所有方法。

RedisServiceImpl.java

@Service("redisService")public class RedisServiceImpl implements RedisService {    @Resource    private RedisTemplate<String, ?> redisTemplate;    @Override    public boolean set(final String key, final String value) {        boolean result = redisTemplate.execute(new RedisCallback<Boolean>() {            @Override            public Boolean doInRedis(RedisConnection connection) throws DataAccessException {                RedisSerializer<String> serializer = redisTemplate.getStringSerializer();                connection.set(serializer.serialize(key), serializer.serialize(value));                return true;            }        });        return result;    }    @Override    public String get(final String key) {        String result = redisTemplate.execute(new RedisCallback<String>() {            @Override            public String doInRedis(RedisConnection connection) throws DataAccessException {                RedisSerializer<String> serializer = redisTemplate.getStringSerializer();                byte[] value = connection.get(serializer.serialize(key));                return serializer.deserialize(value);            }        });        return result;    }    @Override    public boolean expire(final String key, long expire) {        return redisTemplate.expire(key, expire, TimeUnit.SECONDS);    }    @Override    public boolean remove(final String key) {        boolean result = redisTemplate.execute(new RedisCallback<Boolean>() {            @Override            public Boolean doInRedis(RedisConnection connection) throws DataAccessException {                RedisSerializer<String> serializer = redisTemplate.getStringSerializer();                connection.del(key.getBytes());                return true;            }        });        return result;    }}

在这里execute()方法具体的底层没有去研究,只知道这样能实现对于redis数据的操作。
redis保存的数据会在内存和硬盘上存储,所以需要做序列化;这个里面使用的StringRedisSerializer来做序列化,不过这个方式的泛型指定的是String,只能传String进来。所以项目中采用json字符串做redis的交互。

到此,redis在springboot中的整合已经完毕,下面就来测试使用一下。

5. springboot项目中使用redis

在这里就直接使用springboot项目中自带的单元测试类SpringbootApplicationTests进行测试。

@RunWith(SpringRunner.class)@SpringBootTestpublic class SpringbootApplicationTests {    private JSONObject json = new JSONObject();    @Autowired    private RedisService redisService;    @Test    public void contextLoads() throws Exception {    }        @Test    public void setString() {        redisService.set("redis_string_test", "springboot redis test");    }        @Test    public void getString() {        String result = redisService.get("redis_string_test");        System.out.println(result);    }        @Test    public void setObject() {        Person person = new Person("person", "male");        redisService.set("redis_obj_test", json.toJSONString(person));    }        @Test    public void getObject() {        String result = redisService.get("redis_obj_test");        Person person = json.parseObject(result, Person.class);        System.out.println(json.toJSONString(person));    }        @Test    public void setList() {        Person person1 = new Person("person1", "male");        Person person2 = new Person("person2", "female");        Person person3 = new Person("person3", "male");        List<Person> list = new ArrayList<>();        list.add(person1);        list.add(person2);        list.add(person3);        redisService.set("redis_list_test", json.toJSONString(list));    }        @Test    public void getList() {        String result = redisService.get("redis_list_test");        List<String> list = json.parseArray(result, String.class);        System.out.println(list);    }    @Test    public void remove() {        redisService.remove("redis_test");    }}class Person {    private String name;    private String sex;    public Person() {    }    public Person(String name, String sex) {        this.name = name;        this.sex = sex;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }}

在这里先是用@Autowired注解把redisService注入进来,然后由于是使用json字符串进行交互,所以引入fastjson的JSONObject类。然后为了方便,直接在这个测试类里面加了一个Person的内部类。

一共测试了:对于string类型的存取,对于object类型的存取,对于list类型的存取,其实本质都是转成了json字符串。还有就是根据key来执行remove操作。

获取字符串:

Redis在项目中的使用方法有哪些

获取对象:

Redis在项目中的使用方法有哪些

获取list:

Redis在项目中的使用方法有哪些

redis管理客户端数据:

Redis在项目中的使用方法有哪些

“Redis在项目中的使用方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Redis在项目中的使用方法有哪些

本文链接: https://www.lsjlt.com/news/302688.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis在项目中的使用方法有哪些
    本篇内容介绍了“Redis在项目中的使用方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!springboot中redis相关配置po...
    99+
    2023-06-22
  • Redis在项目中的应用场景有哪些
    了解Redis在项目中的应用场景有哪些?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!Redis是一个开源的底层使用C语言编...
    99+
    2024-04-02
  • 字符串在Java项目中有哪些使用方法
    这期内容当中小编将会给大家带来有关字符串在Java项目中有哪些使用方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。public class StudyString { public static ...
    99+
    2023-05-31
    java 字符串 中有
  • 在Java项目中使用枚举类型的方法有哪些
    这期内容当中小编将会给大家带来有关在Java项目中使用枚举类型的方法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 Java枚举类型enum一、   通常定义常量方法我...
    99+
    2023-05-31
    java 枚举 ava
  • Redis在项目中的使用(JedisPool方式)
    springboot中redis相关配置 1、pom.xml中引入依赖 <dependency> <groupId>redis.clients<...
    99+
    2024-04-02
  • redis用在项目上的方法
    这篇文章给大家分享的是有关redis用在项目上的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。想起自己以前想把Redis整合到JavaWeb项目中,网上搜了很多教程都不全面,...
    99+
    2024-04-02
  • 可在JavaScript项目中使用的有用API有哪些
    这篇文章将为大家详细讲解有关可在JavaScript项目中使用的有用API有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。术语API是首字母缩写词,代表...
    99+
    2024-04-02
  • Springboot项目中使用redis的配置方法
    小编给大家分享一下Springboot项目中使用redis的配置方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!springboot是什么springboot一...
    99+
    2023-06-14
  • laravel的redis使用方法有哪些
    这篇文章主要介绍“laravel的redis使用方法有哪些”,在日常操作中,相信很多人在laravel的redis使用方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”laravel的redis使用方法...
    99+
    2023-07-04
  • gitee中更新项目的方法有哪些
    这篇文章主要介绍了gitee中更新项目的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇gitee中更新项目的方法有哪些文章都会有所收获,下面我们一起来看看吧。第一步:克隆项目在更新Gitee项目之前,...
    99+
    2023-07-05
  • 在java项目中实现MD5加密的方法有哪些
    本篇文章为大家展示了在java项目中实现MD5加密的方法有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体方法如下;private String getMD5Str(String str) {...
    99+
    2023-05-31
    java md5加密 ava
  • 在Java项目中实现多线程的方法有哪些
    在Java项目中实现多线程的方法有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java中,有两种方式可以创建多线程:1 通过继承Thread类,重写Thread的run(...
    99+
    2023-05-31
    java 多线程 ava
  • mvc在Java项目中的作用有哪些
    这期内容当中小编将会给大家带来有关mvc在Java项目中的作用有哪些 ,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。MVC全名是Model View Controller,是模型(model)-视图(vi...
    99+
    2023-05-31
    java mvc
  • hashCode在Java项目中的作用有哪些
    本篇文章为大家展示了hashCode在Java项目中的作用有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。详解Java中hashCode的作用以下是关于HashCode的官方文档定义:hashc...
    99+
    2023-05-31
    java hashcode
  • 在项目中使用redis做缓存的一些思路
    目录在项目中redis做缓存的一些思路首先,缓存的对象有三种本人走过的一些弯路为什么没用Redis做缓存使用Table作本地缓存使用Redis作缓存让我们来思考一下下面几个问题那么使...
    99+
    2024-04-02
  • SpringBoot项目中使用redis缓存的方法步骤
    本文介绍了SpringBoot项目中使用redis缓存的方法步骤,分享给大家,具体如下:Spring Data Redis为我们封装了Redis客户端的各种操作,简化使用。 - 当Redis当做数据库或者消息队列来操作时,我们一般使用Red...
    99+
    2023-05-30
    spring boot redis
  • 如何在java项目中使用redis
    本篇文章给大家分享的是有关如何在java项目中使用redis,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、首先下载jar包放到你的工程中2、练习package c...
    99+
    2023-05-31
    redis java ava
  • Spring Aop在JAVA项目中的作用有哪些
    本篇文章给大家分享的是有关Spring Aop在JAVA项目中的作用有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。假如没有aop,在做日志处理的时候,我们会在每个方法中添...
    99+
    2023-05-31
    java spring aop
  • 浅谈redis缓存在项目中的使用
    背景 Redis 是一个开源的内存数据结构存储系统。 可以作为数据库、缓存和消息中间件使用。 支持多种类型的数据结构。 Redis 内置了 复制(replication),LUA脚...
    99+
    2024-04-02
  • it项目管理方法有哪些
    一、瀑布式管理法 瀑布式项目管理法,指活动像瀑布一样沿着列表、按顺序向下流动,以特定顺序执行于多个静态阶段(包括:需求分析、设计、测试、实现、维护阶段)。 瀑布式项目管理,适用于中小型、工作成果可以一次性交付、需求非常清楚、不随...
    99+
    2023-10-29
    项目管理 方法 有哪些
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作