SpringBoot集成Redis

本文介绍了Redis作为数据库和消息代理的角色,强调了其速度、数据类型支持和原子性优势。详细讨论了Redis连接池的概念,对比了直连与连接池的优缺点,并指出Spring Boot整合Redis时使用Lettuce和Spring Data Redis的好处。最后提到了添加依赖和配置信息以开始使用。
摘要由CSDN通过智能技术生成

Redis简介
关于Redis,官网redis.io有一段定义:Redis是一个开源的.基于内存的数据结构存储仓库,被用作数据库.缓存和消息代理.
作为数据库,Redis是一个速度非常快的非关系数据库(Non-Relational Database),它可以存储键(Key)与5种不同类型的值(Value)之间的映射(Mapping),可以将存储在内存的键值对数据持久化到硬盘,可以复制特性来扩展读性能,还可以使用客户端分片来扩展写性能.
作为患者中间件,相比Memcached,Redis支持更多的数据类型和更丰富的数据操作,另外Redis有着丰富的集群方案和使用场景
数据类型
Redis数据类型不仅与关系数据库管理系统(RDBMS)不同,也不同于任何简单的NoSQL键值数据类型存储.Redis数据类型类似于编程语言的基础数据类型,因此开发人员感觉很自然,没个数据类型都支持使用于其类型的操作,受支持的数据类型包括:
String(字符串)
Hash(哈希)
List(列表)
Set(集合)
Zset(Sorted Set:有序集合)
关键优势
Redis的优势包括它的速度.对富数据类型的支持.操作的原子性,以及通用性:
.性能极高,它每秒可执行约1000,000个Set以及约1000,000个Get操作;
.丰富的数据类型,Redis对大多数开发人员已知的大多数数据类型提供了原生支持,这使得各种问题得以轻松解决;
.原子性,因为所以Redis操作都是原子性的,所以多个客户端会并发地访问一个Redis服务器,获取相同的更新值;
.丰富的特性,Redis是一个多效用工具,有非常多的应用场景,包括缓存.消息队列(Redis原生支持发布/订阅).短期应用程序数据(比如Web会话.Web页面命中计数)等.
Redis 连接池简介

在后面 springboot 整合 redis 的时候会用到连接池,所以这里先来介绍下 Redis中的连接池:

客户端连接 Redis 使用的是 TCP协议,直连的方式每次需要建立 TCP连接,而连接池的方式是可以预先初始化好客户端连接,所以每次只需要从 连接池借用即可,而借用和归还操作是在本地进行的,只有少量的并发同步开销,远远小于新建TCP连接的开销。另外,直连的方式无法限制 redis客户端对象的个数,在极端情况下可能会造成连接泄漏,而连接池的形式可以有效的保护和控制资源的使用。

下面以Jedis客户端为例,再来总结下 客户端直连方式和连接池方式的对比

优点	缺点

直连 简单方便,适用于少量长期连接的场景 1. 存在每次新建/关闭TCP连接开销 2. 资源无法控制,极端情况下出现连接泄漏 3. Jedis对象线程不安全(Lettuce对象是线程安全的)
连接池 1. 无需每次连接生成Jedis对象,降低开销 2. 使用连接池的形式保护和控制资源的使用 相对于直连,使用更加麻烦,尤其在资源的管理上需要很多参数来保证,一旦规划不合理也会出现问题
spring boot操作Redis
Lettuce:是一个可伸缩线程安全的Redis安户端,名个线程可以共享同一个
RedisConnection,它利用优委Nett NIm E期克高冲地管理多个连接。
Spring Data:是 Spring框架中的一个主要而日,日的是为了简化构建基于Spring框架
应用的数据访问,包括非关系数据库、Man-Reduce框架、云数据服务等,另外也包含
对关系数据库的访问支持。
Spring Data Redis:是Spring Data项目中的一个主要模块,实现了对Redis客户端API
的高度封装,使对 Redis的操作更加便捷。
因此Spring Data Redis和 Lettuce具备的功能,spring-boot-starter-data-redis几乎都会有。
基本操作
添加依赖

    <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

application.properties配置信息

#application.properties配置相关信息
#Redis数据库索引
spring.redis.database=0
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=foobared
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.min-idle=0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值