一. Redis简介
Redis是分布式内存数据库,即它的数据是存储在内存上的,运行速度很快。同时它也有自己的持久化机制。Redis常用作热点数据存储、计数器等,其它的应用场景可以自行百度。Redis默认支持16个数据库(可以通过配置文件支持更多,无上限),每个数据库对外都是一个从0开始的递增数字命名,可以通过配置databases来修改这一数字。客户端与Redis建立连接后会自动选择0号数据库。
二. Redis数据类型
- Redis有5种基本数据类型,分别是String、Hash、List、Set、zset。
- redis存储结构
Redis 内部使用一个 redisObject 对象来表示所有的 key 和 value。
三. Redis的简单使用
3.1 下载安装Redis
Redis官方不支持在Windows上安装Redis,所以没有开发Redis的Windows版本。以下使用编译版安装在Windows上简单了解Redis,想深入了解redis可以参照官方介绍Redis官网。
- 下载地址:Windows安装Redis
.mis文件是安装版,.zip是压缩版,最后两个不支持Windows安装。 - 下载解压后得到如下目录
- 启动Redis
在上图地址栏中输入cmd进入命令窗口,使用命令启动Redis服务:redis-server.exe redis.windows.conf
启动端口为6379 - 通过Redis默认客户端程序操作Redis数据库
连接redis数据库:redis-cli.exe -h 127.0.0.1 -p 6379
向数据库添加数据:set key value
获取数据:get key
上述中通过命令操作数据库效率很慢,接下来我们将通过Redis可视化工具像MySQL界面操作一样操作Redis数据库。
3.2 安装使用Redis可视化工具
-
从官网下载安装RedisInSightRedis官网
下载后直接点击安装程序,按照提示完成安装。 -
按如下步骤连接Redis数据库,在此之前必须保证有可用的Redis服务(开启的Redis服务)
如下,数据库便连接成功了
-
通过可视化工具操作数据库
点击连接的数据库,在左侧可以看到我们刚刚通过命令创建的键值,也可以通过+Key在右侧向数据库添加不同类型的数据
3.3 集成Redis
- 引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 配置Redis
Spring:
redis:
database: 1
host: 127.0.0.1
port: 6379
username:
password:
- 创建RedisTemplate
package com.example.redisdemo.config;
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.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
public class RedisTemplateConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
// 配置 Redis Template 序列化方式
// StringRedisSerializer:字符串编码,数据以 String 存储
RedisSerializer<String> redisSerializer = new StringRedisSerializer();
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
template.setKeySerializer(redisSerializer);
template.setValueSerializer(redisSerializer);
template.setHashKeySerializer(redisSerializer);
template.setHashValueSerializer(redisSerializer);
template.afterPropertiesSet();
return template;
}
}
- 写测试用例进行测试
如下是使用postman测试的结果