Redis(Remote Dictionary Server)是一个开源的内存数据库,遵守 BSD 协议,它提供了一个高性能的键值(key-value)存储系统,常用于缓存、消息队列、会话存储等应用场景。
高性能:redis的高性能(能够支持每秒数十万次的读写操作),使得Redis成为处理高并发请求的理想选择。
数据类型丰富:提供字符串、列表、集合、哈希表、有序集合等数据类型。
原子性操作:Redis 的所有操作都是原子性的,这意味着操作要么完全执行,要么完全不执行。这种特性对于确保数据的一致性和完整性至关重要,尤其是在高并发环境下处理事务时。
持久化:Redis 支持数据的持久化,可以将内存中的数据保存到磁盘中,以便在系统重启后恢复数据。这为 Redis 提供了数据安全性,确保数据不会因为系统故障而丢失。
支持发布/订阅模式:Redis 内置了发布/订阅模式(Pub/Sub),允许客户端之间通过消息传递进行通信。这使得 Redis 可以作为消息队列和实时数据传输的平台。
单线程模型:尽管 Redis 是单线程的,但它通过高效的事件驱动模型来处理并发请求,确保了高性能和低延迟。单线程模型也简化了并发控制的复杂性。
下载redis
- 将下载的压缩包解压到某个文件夹下:
配置环境变量
此电脑->属性->高级系统配置->环境变量,找到path这个变量,添加redis的解压目录:
保存之后,打开cmd窗口,输入redis-cli -v查看redis-cli版本信息:
如果出现以上版本信息,就证明配置成功了。
启动redis服务
打开cmd窗口,输入启动redis服务命令:redis-server
出现上图所示则证明redis已经初始化成功,接下来就可以准备连接了。
三、redis连接
安装Redis Desktop Manager
进入Redis Desktop Manage在git的发行版,下载redis安装包,直接傻瓜式安装即可:
连接redis
Redis Desktop Manager安装完成后,启动可视化工具连接到redis:
输入连接地址、端口、名称和密码:
测试
新增一个键测试:
打开cmd窗口,执行redis-cli,由于我们是在数据库1,所以要在数据库1里面查询才有结果:
至此,redis的安装与连接已完成。
四、springboot连接redis
添加redis依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>3.4.0</version>
</dependency>
配置redis连接信息
spring:
data:
redis:
host: 127.0.0.1
port: 6379
password: test123
database: 1
创建redis配置类
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
public class redisConfig {
@Autowired
private RedisConnectionFactory redisConnectionFactory;
@Bean
public RedisTemplate<String, Object> redisTemplate(){
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
// 序列化key
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
// 序列化hash
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new StringRedisSerializer());
// 连接redis数据库
redisTemplate.setConnectionFactory(redisConnectionFactory);
return redisTemplate;
}
}
测试
在一个接口里面尝试获取redis里面的值:
获取到值: