系列文章目录
文章目录
一、Redis入门
1.1 什么是Redis
- Redis 是用 C 语言开发的一个开源的高性能键值对 key-value 数据库,官方提供的数据是可以达到 100000+QPS(每秒查询次数)
- 热点数据:短时间内有大量用户来读取,如果存在 MySQL 中数据库压力很大,因为 MySQL 数据库将数据存在磁盘上
- Redis 是非关系型数据库
1.2 Redis 下载安装
- Linux 下载安装
- Window 下载安装
1.3 Redis 服务启动与停止
- Linux 进入 redis/src目录下
- Window中启动 redis
1.4 设置密码远程连接
1.5 Redis 数据类型
- key是固定的字符串类型,value有5中常用数据类型
二、Redis 常用命令
2.1 字符串String操作命令
- SETEX 的过期时间到了之后就会把该键值对删除,比较常见的应用就是手机发送验证码登录,但是这个验证码只在某一段时间内有效,过期就不能使用了
- SETNX 只要key值之前设置过,就无法设置value值,常见应用于分布式锁
- 只要是使用 set 命令,存入的数据 value值 都是 字符串String 类型
- (nil)相当于Java语言中的null
2.2 哈希Hash操作命令
2.3 列表list操作命令
- list 存入的数据是有顺序的,但是删除数据可以从头部删也可以从尾部删除(类似双端队列),也可以存在重复元素
2.4 集合set常用命令
- set存入的数据是无序的,但是value值是唯一的,不能重复
- sdiff key1 key2,查询出的结果是key1中减去和key2中相同的集合成员,剩下的key1中的集合成员
2.5 有序集合sorted set操作命令
2.6 Redis常用命令
- 通用命令主要针对不同类型的 key
- keys * 代表查询现有的所有类型的key
- TTL命令如果返回值是 -1 代表永久存在
三、Java中操作Redis
3.1 Spring Data Redis简化操作(基础环境&设置序列化器)
- 导入坐标
- Spring data redis 给物种类型提供了封装类
- Redis相关配置
- select index 表示切换数据库
- 在配置文件中修改默认的初始数据库数量
- 代码示例
- 改变rediTemplates序列化,数据传输中做序列化可以保证安全
- 添加RedisTemplate配置类
import org.springframework.cache.annotation.CachingConfigurerSupport;
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;
/**
* Redis配置类
*/
@Configuration
public class RedisConfig extends CachingConfigurerSupport {
@Bean
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
//默认的Key序列化器为:JdkSerializationRedisSerializer
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setConnectionFactory(connectionFactory);
return redisTemplate;
}
}
3.2 数据类型操作
- String 类型代码示例
- 通过 RedisTemplate 模板类获取操作 String 类型数据的类
- hash 类型代码示例
- List 列表类型代码示例
- set 类型代码示例
- Zset (有序集合)类型代码示例
- 通用操作代码示例