Redis安装与使用 + Springboot整合Redis
Redis安装与使用 + Springboot整合Redis
- 前言
- Redis简介
- Redis优势
- Redis安装
- Windows
- 1.相关配置
- 2.启动Redis服务
- 3.连接Redis,进行操作
- 4.测试一些Redis命令
- Linux
- Springboot项目整合使用Redis
- 1.添加Maven依赖
- 2.配置Redis相关属性
- 3.在测试类中进行测试
- 结语
😀大家好!我是向阳🌞,一个想成为优秀全栈开发工程师的有志青年!
📔今天来教大家如何安装以及使用Redis,并且教大家如何在Springboot项目中整合使用Redis😊
前言
Redis简介
Redis(Remote Dictionary Server)是一个开源的内存数据库,遵守 BSD 协议,它提供了一个高性能的键值(key-value)存储系统,常用于缓存、消息队列、会话存储等应用场景。
Redis优势
特点 | 详细描述 |
---|---|
性能极高 | Redis 以其极高的性能而著称,能够支持每秒数十万次的读写操作24。这使得Redis成为处理高并发请求的理想选择,尤其是在需要快速响应的场景中,如缓存、会话管理、排行榜等。 |
丰富的数据类型 | Redis 不仅支持基本的键值存储,还提供了丰富的数据类型,包括字符串、列表、集合、哈希表、有序集合等。这些数据类型为开发者提供了灵活的数据操作能力,使得Redis可以适应各种不同的应用场景。 |
原子性操作 | Redis 的所有操作都是原子性的,这意味着操作要么完全执行,要么完全不执行。这种特性对于确保数据的一致性和完整性至关重要,尤其是在高并发环境下处理事务时。 |
持久化 | Redis 支持数据的持久化,可以将内存中的数据保存到磁盘中,以便在系统重启后恢复数据。这为 Redis 提供了数据安全性,确保数据不会因为系统故障而丢失。 |
支持发布/订阅模式 | Redis 内置了发布/订阅模式(Pub/Sub),允许客户端之间通过消息传递进行通信。这使得 Redis 可以作为消息队列和实时数据传输的平台。 |
单线程模型 | 尽管 Redis 是单线程的,但它通过高效的事件驱动模型来处理并发请求,确保了高性能和低延迟。单线程模型也简化了并发控制的复杂性。 |
主从复制 | Redis 支持主从复制,可以通过从节点来备份数据或分担读请求,提高数据的可用性和系统的伸缩性。 |
应用场景广泛 | Redis 被广泛应用于各种场景,包括但不限于缓存系统、会话存储、排行榜、实时分析、地理空间数据索引等。 |
社区支持 | Redis 拥有一个活跃的开发者社区,提供了大量的文档、教程和第三方库,这为开发者提供了强大的支持和丰富的资源。 |
跨平台兼容性 | Redis 可以在多种操作系统上运行,包括 Linux、macOS 和 Windows,这使得它能够在不同的技术栈中灵活部署。 |
Redis 与其他 key-value 存储系统的主要区别在于其提供了丰富的数据类型、高性能的读写能力、原子性操作、持久化机制、以及丰富的特性集。
Redis中文网: https://www.redis.net.cn/
Redis安装
Windows
Redis下载地址:https://github.com/tporadowski/redis/releases
进入链接后,我们选择x64位、zip压缩包进行下载,点击即可下载,如图所示。
解压后在终端就可以进行操作使用了!
1.相关配置
在这之前我们可以手动修改一些配置,我们进入解压后的文件夹,打开 redis.windows-service.conf,我们可以选择使用任意一款文本编辑器打开,这里我使用VSCode,如图所示。
我们在 redis.windows-service.conf 配置文件中进行全局搜索,在该箭头注释下面可以配置Redis服务的密码,有需要的话可以自己配置,例如:
# requirepass foobared
requirepass 123456
2.启动Redis服务
打开任务管理器,可以使用快捷键Ctrl+Shift+Esc打开任务管理器,按照下图所示操作。
3.连接Redis,进行操作
我们打开终端,我们按住电脑键盘Win+R,输入cmd召唤终端。
在终端输入 redis-cli -p 6379 -h 127.0.0.1 (-p是选择端口,默认为6379,-h是选择ip,默认为127.0.0.1)即可进入redis客户端控制台,接下来我们就可以进行操作了。
redis-cli -p 6379 -h 127.0.0.1
注:如果在第一步相关配置中输入了密码,我们在进入后要输入 auth <你设置的密码>,才可以连接成功。
当然也可以在连接的时候设置密码,redis-cli -p 6379 -h 127.0.0.1 -a <密码> 下图为连接成功的画面。
redis-cli -p 6379 -h 127.0.0.1 -a <密码>
例:redis-cli -p 6379 -h 127.0.0.1 -a 123456
auth <你设置的密码>
例:auth 123456
4.测试一些Redis命令
我们在控制台来输入一些Redis命令进行测试。
上述只是一部分Redis命令,如果要使用更多的操作命令,请点击下面链接进行查阅使用。
Redis命令:https://www.redis.net.cn/tutorial/3506.html
Linux
Linux安装,跟着下面命令进行傻瓜式安装就可以了👍。
温馨提示:最好不要在root根目录下面进行安装,要不然后续就找不到自己下载的Redis了💕,建议mkdir一个文件夹,在该目录下放一些服务。
# mkdir services
# cd services# wget http://download.redis.io/releases/redis-5.0.14.tar.gz
# tar -xzvf redis-5.0.14.tar.gz
# cd redis-5.0.14
# make
执行完 make 命令后,redis-5.0.14 的 src 目录下会出现编译后的 redis 服务程序 redis-server,还有用于测试的客户端程序 redis-cli:
下面启动 redis 服务
# cd src
# ./redis-server
注意这种方式启动 redis 使用的是默认配置。也可以通过启动参数告诉 redis 使用指定配置文件使用下面命令启动。
# cd src
# ./redis-server ../redis.conf
redis.conf 是一个默认的配置文件。我们可以根据需要使用自己的配置文件。
启动 redis 服务进程后,我们可以重新打开一个窗口,就可以使用测试客户端程序 redis-cli 和 redis 服务交互了。 比如:
# cd src
# ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
Springboot项目整合使用Redis
1.添加Maven依赖
除了 spring-boot-starter-data-redis 外,还添加了 commons-pool2 依赖,是因为我们需要使用到连接池。
<!-- Redis -->
<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>
2.配置Redis相关属性
在 application.yml 中配置如下常用的基本属性即可。
注意:如果你使用的是 spring boot 3.x,上述配置的命名空间应该是 spring.data.redis!!!
# Redis配置
# 如果使用的是spring boot 3.x版本,应该为spring.data.redis
spring:redis:# 连接地址host: localhost# 端口号port: 6379# 用户名 如果有的话设置
# username: root# 密码 如果有的话设置
# password: 123456# 数据库索引database: 10# Lettuce 客户端配置lettuce:# 连接池配置pool:# 最小空闲连接min-idle: 0# 最大空闲连接max-idle: 8# 最大活跃连接max-active: 8# 连接池最大阻塞等待时间(使用负值表示没有限制)max-wait: -1ms
如果你想要配置其他更多属性,请参考官方文档。
3.在测试类中进行测试
配置就绪后,StringRedisTemplate 已经可用,你可以在任何地方注入、使用,我们这里使用 StringRedisTemplate 进行测试。
@SpringBootTest
@Slf4j
class SpringRedisDemoApplicationTests {@AutowiredStringRedisTemplate redisTemplate;@Testvoid redisTest() {// 设置键值对,并设置过期时间redisTemplate.opsForValue().set("name", "shousi", 10, TimeUnit.MINUTES);// 获取键值对String name = redisTemplate.opsForValue().get("name");log.info("name: {}", name);}
}
上述代码中的 @Slf4j 注解是引入了lombok依赖,可以在控制台打印日志。
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>
运行后得到结果,成功整合😎!
对于 StringRedisTemplate 更完整的方法列表,你可以参阅其 java doc。
结语
对于Redis的安装和使用,以及如何在 Springboot 中整合和使用 Redis 就介绍到这里啦,下一次我会为大家介绍一款操作 Redis 的可视化工具,让使用 Redis 更加方便。
——👦[作者]:向阳256
——⏳[更新]:2024.11.3
——🥰本人技术有限,如果有不对指正需要更改或者有更好的方法,欢迎到评论区留言。