SpringBoot Redis 基础使用

这篇具有很好参考价值的文章主要介绍了SpringBoot Redis 基础使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Redis能做什么:

redis特点

redis优点

opsForValue

opsForList

opsForSet

opsForZSet

StringRedisTemplate与RedisTemplate区别点


        redis是一个key-value。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。


Redis能做什么:

1. 缓存,毫无疑问这是Redis当今最为人熟知的使用场景。再提升服务器性能方面非常有效;

2.排行榜,如果使用传统的关系型数据库来做这个事儿,非常的麻烦,而利用Redis的SortSet数据结 构能够非常方便搞定;

3. 计算器/限速器,利用Redis中原子性的自增操作,我们可以统计类似用户点赞数、用户访问数等, 这类操作如果用MySQL,频繁的读写会带来相当大的压力;限速器比较典型的使用场景是限制某 个用户访问某个API的频率,常用的有抢购时,防止用户疯狂点击带来不必要的压力; 注:限速器也是对请求限流的一种实现方式。

4. 好友关系,利用集合的一些命令,比如求交集、并集、差集等。可以方便搞定一些共同好友、共同 爱好之类的功能;

5. 简单消息队列,除了Redis自身的发布/订阅模式,我们也可以利用List来实现一个队列机制,比 如:到货通知、邮件发送之类的需求,不需要高可靠,但是会带来非常大的DB压力,完全可以用 List来完成异步解耦;

6. Session共享,默认Session是保存在服务器的文件中,即当前服务器,如果是集群服务,同一个 用户过来可能落在不同机器上,这就会导致用户频繁登陆;采用Redis保存Session后,无论用户 落在那台机器上都能够获取到对应的Session信息。


redis特点

  • Redis将其数据库完全保存在内存中,仅使用磁盘进行持久化。
  • 与其它键值数据存储相比,Redis有一组相对丰富的数据类型
  • Redis可以将数据复制到任意数量的从机中。

redis优点

  • 异常快
  • 支持丰富的数据类型
  • 操作具有原子性
  • 多实用工具

redis安装略

SpringBoot中使用

引入相关jar包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-redis</artifactId>
    <version>1.3.8.RELEASE</version>
</dependency>

修改相关配置(可不用配置)

# Redis数据库索引(默认为0)

spring.redis.database=0

# Redis服务器地址

spring.redis.host=127.0.0.1

# Redis服务器连接端口

spring.redis.port=6379

# Redis服务器连接密码(默认为空)

spring.redis.password=123456

# 连接池最大连接数(使用负值表示没有限制)

spring.redis.pool.max-active=8

# 连接池最大阻塞等待时间(使用负值表示没有限制)

spring.redis.pool.max-wait=-1

# 连接池中的最大空闲连接

spring.redis.pool.max-idle=8

# 连接池中的最小空闲连接

spring.redis.pool.min-idle=0

# 连接超时时间(毫秒)

spring.redis.timeout=0

上述两个步骤完成后,SpringBoot自动在Spring容器中配置一个redisTemplate的Bean,所以可以直接 使用redisTemplate。

使用Spring封装的RedisTemplate操作redis

redisTemplate.opsForValue();//操作字符串

redisTemplate.opsForHash();//操作hash

redisTemplate.opsForList();//操作list

redisTemplate.opsForSet();//操作set

redisTemplate.opsForZSet();//操作有序set

使用:

SpringBoot Redis 基础使用,Redis,spring boot,redis,后端

SpringBoot Redis 基础使用,Redis,spring boot,redis,后端
可视化工具展示

opsForValue

opsForValue操作字符串

存:redisTemplate.opsForValue().set("name","tom");

取:redisTemplate.opsForValue().get("name") 

失效时间:

设置失效时间 使用:redisTemplate.opsForValue().set("name","tom",10, TimeUnit.SECONDS);

  • TimeUnit.DAYS //天
  • TimeUnit.HOURS //小时
  • TimeUnit.MINUTES //分钟
  • TimeUnit.SECONDS //秒
  • TimeUnit.MILLISECONDS //毫秒

结果:redisTemplate.opsForValue().get("name")由于设置的是10秒失效,十秒之内查询有结果, 十秒之后返回为null

支持整型与浮点型(increment):

使用:template.opsForValue().increment("sex",1); System.out.println(template.opsForValue().get("sex")); 结果:1

APPEND

如果key已经存在并且是一个字符串,则该命令将该值追加到字符串的末尾。如果键不存在,则它被创建并设 置为空字符串,因此APPEND在这种特殊情况下将类似于SET

使用:template.opsForValue().append("name"," hello"); System.out.println(template.opsForValue().get("name")); 结果:tom Hello

截取key所对应的value字符串 System.out.println("*********"+template.opsForValue().get("name",0,3)); 结果:tom

存储一个对象(此类必须先序列化实现接口Serializable)

RedisSerializer rs = new StringRedisSerializer();

redisTemplate.setStringSerializer(rs);

ValueOperations ops = redisTemplate.opsForValue(); ops.set("user",user);//放入redis

//取出对象

User setuser = (User) redisTemplate.opsForValue().get("user");


opsForList

SpringBoot Redis 基础使用,Redis,spring boot,redis,后端

SpringBoot Redis 基础使用,Redis,spring boot,redis,后端


opsForSet

SpringBoot Redis 基础使用,Redis,spring boot,redis,后端

SpringBoot Redis 基础使用,Redis,spring boot,redis,后端


opsForZSet

SpringBoot Redis 基础使用,Redis,spring boot,redis,后端

SpringBoot Redis 基础使用,Redis,spring boot,redis,后端


StringRedisTemplate与RedisTemplate区别点

1. 两者的关系是StringRedisTemplate继承RedisTemplate

2. 两者的数据是不共通的;也就是说StringRedisTemplate只能管理StringRedisTemplate里面 的数据,RedisTemplate只能管理RedisTemplate中的数据。

3. (序列化类)RedisTemplate使用的是JdkSerializationRedisSerializer 存入数据会将数据 先序列化成字节数组然后在存入Redis数据库。 StringRedisTemplate使用的是 StringRedisSerializer 使用时注意事项: 当你的redis数据库里面本来存的是字符串数据或者你要存取的数据就是字符串类型数据的时 候,那么你就使用StringRedisTemplate即可。 但是如果你的数据是复杂的对象类型,而取出的时候又不想做任何的数据转换,直接从 Redis里面取出一个对象,那么使用RedisTemplate是更好的选择。

RedisTemplate使用时常见问题

redisTemplate 中存取数据都是字节数组。当redis中存入的数据是可读形式而非字节数组时,使用 redisTemplate取值的时候会无法获取导出数据,获得的值为null。文章来源地址https://www.toymoban.com/news/detail-726856.html

到了这里,关于SpringBoot Redis 基础使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot - 结合 Redis 使用 Lua脚本

    在Spring Boot中整合Redis并使用Lua脚本: 添加Spring Boot和Redis的依赖: 首先,在Spring Boot项目的 pom.xml 文件中添加Spring Boot和Spring Data Redis的依赖: 配置Redis连接: 在 application.properties 或 application.yml 中配置Redis的连接信息,以及 redis 配置: RedisConfig.java

    2024年02月08日
    浏览(43)
  • Spring Boot 中的 Redis 数据操作配置和使用

    Redis(Remote Dictionary Server)是一种高性能的开源内存数据库,用于缓存、消息队列、会话管理和数据存储。在Spring Boot应用程序中,Redis被广泛用于各种用例,包括缓存、持久性存储和分布式锁。本文将探讨如何在Spring Boot中配置和使用Redis,包括数据操作和常见用例。 要在S

    2024年02月07日
    浏览(43)
  • 使用Spring Boot实现Redis键过期回调功能

    当使用Redis作为缓存或数据存储的时候,有时候需要在键过期时执行一些特定的操作,比如清除相关数据或发送通知。在Spring Boot中,可以通过实现 RedisMessageListener 接口来实现Redis键过期回调功能。下面是一个实现Redis键过期回调功能的Spring Boot应用的示例: 步骤一:引入依赖

    2024年02月16日
    浏览(39)
  • 如何在Spring Boot中使用Redis连接池?

      在Spring Boot中使用Redis连接池,你通常不需要做太多额外配置,因为Spring Boot Data Redis默认使用了一个连接池,即LettuceConnectionFactory或JedisConnectionFactory,它们内部已经实现了连接池功能。   下面是一些步骤和配置,以确保你在Spring Boot应用中正确使用了Redis连接池:   

    2024年03月11日
    浏览(52)
  • 轻松打卡:使用Spring Boot和Redis Bitmap构建高效签到系统【redis实战 四】

    欢迎来到我的博客,代码的世界里,每一行都是一个故事 Redis List:打造高效消息队列的秘密武器【redis实战 一】 Redis Streams在Spring Boot中的应用:构建可靠的消息队列解决方案【redis实战 二】 Spring Boot和Redis Geo实现附近的人【redis实战 三】 在数字化时代,签到系统已成为许多

    2024年01月23日
    浏览(42)
  • Spring Boot 整合 Redis 全面教程:从配置到使用

    Redis 是一种高性能的键值存储数据库,而 Spring Boot 是一个简化了开发过程的 Java 框架。将两者结合,可以轻松地在 Spring Boot 项目中使用 Redis 来实现数据缓存、会话管理和分布式锁等功能。 在 pom.xml 文件中添加 Redis 相关依赖 在 application.properties 或 application.yml 配置文件中添

    2024年02月13日
    浏览(41)
  • Spring Boot 整合 Redis,使用 RedisTemplate 客户端

    1.1.1 添加依赖 redis 的依赖: 1.1.2 yml 配置文件 1.1.3 Config 配置文件 1.1.4 使用示例 注入 RedisTemplate,即可操作 Redis,简单示例如下: 1.2.1 RedisTemplate 简介 RedisTemplate 是 Spring Data Redis 项目的一部分,旨在简化在Java应用程序中使用 Redis 的过程。它提供了一组简单的方法,可以在

    2024年02月09日
    浏览(271)
  • Spring Boot 中的 Redis 的数据操作配置和使用

    Redis 是一种高性能的 NoSQL 数据库,它支持多种数据结构,包括字符串、哈希、列表、集合和有序集合。Redis 还提供了丰富的命令,可以对数据进行快速的 CRUD 操作。Spring Boot 是一个基于 Spring 的快速开发框架,它提供了对 Redis 的集成支持。在本文中,我们将介绍如何在 Spri

    2024年02月11日
    浏览(51)
  • 使用Spring Boot操作Redis、ES、MongoDB举例

    在Spring Boot应用程序中操作Redis通常涉及到使用Spring Data Redis,这是一个提供简便方法来操作Redis的库。以下是一个基本示例,演示如何在Spring Boot应用程序中集成和使用Redis: 步骤 1: 添加依赖项 首先,在你的 pom.xml 文件中添加Spring Data Redis的依赖项。 步骤 2: 配置Redis 在你的

    2024年01月25日
    浏览(40)
  • 在Spring Boot中使用Redis 5的Stream

    Redis是一个开源的高性能键值对存储系统,而Redis 5引入了新的数据结构——Stream(流)。Stream可以用于高效地保存和处理事件流数据。在本文中,我们将学习如何在Spring Boot应用程序中使用Redis 5的Stream功能。 步骤1:配置Redis连接 首先,确保您的Spring Boot应用程序已经添加了

    2024年02月09日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包