什么是Redis
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and
message broker
翻译为:Redis是一个开源的内存中的数据结构存储系统,它可以用作:数据库、缓存和消息中间件。官网:https://redis.io
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。它存储的value类型比较丰富,也被称为结构化的NoSql数据库。
NoSql (Not only sQL),不仅仅是SQL,泛指非关系型数据库。NoSql数据库并不是要取代关系型数据库,而是关系型数据库的补充。
下载安装
PC绿色版直接解压即可
Linux 基于c++编写,在解压文件后在redis的根目录执行make命令进行编译然后进入src目录中执行make install指令进行安装

目录骨架和配置
有两个配置文件,具体用哪个启动服务端的时候通过命令参数指定即可

基础配置:
后台运行:protected-mode yes
端口:port 6379
设置密码:打开requiepass 自定义密码的注释
允许远程连接:注释掉bind 127.0.0.1
创建的数据库数量:databases 具体的数量(Redis默认创建16个数据库,0-15,默认操作的是第0号数据库,通过select 数据库序号命令进行切换)

启动连接
安装完成后会有一个客户端和一个服务端(CS架构),先启动服务端,再通过客户端连接进行操作
启动服务
./redis-server ./redis.conf
客户端连接
./redis-cli -h localhost -p 6379 -a 密码
或者先连接
./redis-cli -h localhost -p 6379
提示没有权限的时候输入auth 密码解锁权限
Redis的键只能是String类型,他常用的数据类型指的是值的数据类型

完整官方文档:

Redis hash是一个string类型的 field 和value的映射表,hash特别适合用于存储对象,常用命令:

Redis列表是简单的字符串列表,按照插入顺序排序(任务队列),常用命令:
LPUSH key value1 [value2]LRANGE key start stopRPOP keyLLEN keyBRPOP key1 [key2 ] timeout
Redis set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据,常用命令:
SADD key member1 [member2]
向集合添加一个或多个成员
SMEMBERS key
返回集合中的所有成员
SCARD key
获取集合的成员数
SINTER key1 [key2]
返回给定所有集合的交集
SUNION key1 [key2]
返回所有给定集合的并集
SDIFF key1 [key2]
返回给定所有集合的差集——前减后
SREM key member1 [member2]
移除集合中一个或多个成员

Redis sorted set有序集合是string类型元素的集合,且不允许重复的成员。每个元素都会关联一个double类型的分数(score)。redis正是通过分数来为集合中的成员进行从小到大排序。有序集合的成员是唯一的,但分数却可以重复。常用命令:

不论是对应何种value类型的key都可以操作的通用命令

Redis的Java客户端很多,官方推荐的有三种:
Spring Data Redis中提供了一个高度封装的类: RedisTemplate针对jedis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口,具体分类如下;
RedisTemplate对象默认分别给set和get方法进行了对键和值的序列化和反序列化,所以在Redis客户端查看key和value的时候会看到键和值不是自己设置的样子。但是在Java代码操作中却能得到想要的值,因为get操作会按规则相应执行反序列化得到本意的值
如果我们不希望对存储的值进行序列化,我们可以在配置类声明RedisTemplate的序列化和反序列化方法覆盖SpringBoot启动时内置的RedisTemplate的序列化和反序列化方法:

使用步骤
导入依赖坐标

配置Redis

开始使用
start:Redis-08-Redis常用命令集合类型&有序集合类型操作命令哔哩哔哩_bilibili
通过RedisTemplate对象获取操作对应数据类型的对象再操作即可,两个例子:

