Redis简介

课程介绍

Redis介绍与安装

掌握Redis的常用命令与数据类型

掌握在Java中的操作

Redis的由来

image-20230115155321993

image-20230115155616941

Redis介绍

Redis是Key-Value型NoSQL数据库

Redis将数据存储在内存中,同时也能持久化到磁盘

Redis常用于缓存,利用内存的高效提高程序的处理速度

Redis特点

速度快

广泛的语言支持

持久化

多种数据结构

主从复制

分布式与高可用

Redis安装与常用配置

在Linux系统中安装Redis

在Windows系统中安装Redis

在Linux系统中安装Redis

https://redis.io/

https://redis.io/download/

image-20230115235435877

这里下载5.0.2的

image-20230115235633247

image-20230116002414358

image-20230116003351213

image-20230116003517679

image-20230116003740967

image-20230116003806621

image-20230116003846829

image-20230116004300261

这就是redis的源代码,再用make进行编译安装;

image-20230116005141076

image-20230116005228179

image-20230116005307032

image-20230116005420898

image-20230116005527203

image-20230116005541489

redis启动成功;

Windows系统安装Redis

https://github.com/MicrosoftArchive/redis

image-20230116010841161

image-20230116011028365

启动命令;conf的核心文件

image-20230116011157750

image-20230116011246200

守护进程方式启动Redis

Redis的常用基本配置

image-20230116112335756

启动redis

image-20230116113258947

按ctrl C 退出服务

image-20230116113329193

关掉终端也会关闭服务,但我们并不想这样,想让他保持在后台。

进入redis的配置

1
vim redis.conf

找到守护进程,改为yes:

image-20230116113537110

按i进入编辑模式,修改为yes,再按Esc退出比较模式;

最后按:wq 保存并退出;

再启动服务:

1
./src/redis-server redis.conf

image-20230116113811592

验证redis是否启动成功:

1
netstat -tulpn

查看当前系统所占端口

image-20230116114020431

这时关闭再打开终端查看,进程仍在,说明守护进程启动成功,可以在后台进行;

如果要关闭redis;,可以使用kill

1
kill -9 2844

image-20230116114426319

端口就不见了;

但kill过于粗暴,不建议这么使用,后面我们用redis提供的命令进行关闭;

Redis常用基本配置

image-20230116141844901

image-20230116142905575

image-20230116142954853

进入cli命令

image-20230116143143480

exit可以退出命令

image-20230116143216034

关闭redis服务用

1
./src/redis-cli shutdown

这样就不用kill了。

进入配置

1
vim redis.conf

image-20230116143425948

建议改掉,免得遭受黑客攻击:

image-20230116143534114

image-20230116143609938

image-20230116143933137

最后输入:wq保存并退出;

image-20230116144118615

启动的logo不见了,它被放到了log里面

image-20230116144307581

尝试cli命令

image-20230116144344599

发现端口号连接不上;

修改端口image-20230116144500305

1
./src/redis-cli -p 6380

选择数据库:

image-20230116144817054

15最大。

修改数据库数量:

1
vim redis.conf

image-20230116144920342

image-20230116144949955

重启配置生效:

image-20230116145231667

设置密码:

image-20230116145403287

这里被注释了,直接去掉;

默认密码foobared删掉,改成12345;

image-20230116145503716

:wq保存退出;

image-20230116150119258

1
auth password

更改数据保存路径:

进入redis.conf

image-20230116150307775

大多情况下不需要修改;

image-20230116150459523

dump.rdb功能是全量保存,防止宕机带来的数据损失;

Redis通用命令

image-20230116153630049

image-20230116154240244

image-20230116154601202

image-20230116154912917

image-20230116155321226

设置存在时间

查看剩余时间

image-20230116155436376


Redis数据类型

image-20230116155716541

String 字符串类型

image-20230116155752795

字符命令

image-20230116155953822

image-20230116160454665

image-20230116160912871

incr和decrby使用得不是特别多,了解一下就好;

删除key用del

image-20230116161118432

Hash 键值类型

image-20230116161222997

Hash命令

image-20230116161535180

image-20230116162358507

image-20230116162524610

image-20230116162617975

image-20230116162644324

image-20230116162817610

image-20230116162835786

List 列表类型

image-20230116170835293

List 命令

image-20230116171131458

image-20230116171235414

image-20230116172214206

Set与Zset集合类型

image-20230116173841494

PS:集合在项目中比较少用。

Set

image-20230116174613915

不能插入相同的值,说明是全局唯一的。

image-20230116174659994

image-20230116174831403

image-20230116174856797

image-20230116175023416

image-20230116175252991

ZSet

image-20230116175703353

image-20230116175734184


Jedis介绍与环境准备

Java客户端-Jedis

Jedis是Java语言开发的Redis客户端工具包

Jedis只是对Redis命令的封装,掌握Redis命令便可轻易上手

先关闭服务器,在进入redis.conf

1
vim redis.conf

找到保护模式:

image-20230116213814282

因为开发模式的需要,将其关闭,允许其他主机连接进来。

image-20230116214510296

这里改为0.0.0.0,所有的ip的主机都能访问进来。

image-20230116214613736

注意:开发模式可以这么写,但在线上的时候,千万不要写0.0.0.0,要指名远程主机的ip。

image-20230116214931646

image-20230116214903476

但还要设置防火墙,让防火墙给端口6380的数据通行;

image-20230116215159189

1
firewall-cmd --zone=public --add-port=6380/tcp --permanent

image-20230116215652804

permanent设置永久,防止下次打开失效;

重新加载防火墙设置:

image-20230116215819859

1
firewall-cmd --reload

用ifconfig查看本机ip:image-20230116220545492

https://redis.io/resources/clients/

image-20230116220647596

我们用的是Java

image-20230116220750490

这里用Jedis;

https://github.com/redis/jedis

image-20230116220915855

可以用maven进行下载;

image-20230116221725753

Jedis使用入门

IDEA创建maven新工程,加入依赖;

image-20230116224751311

image-20230116224930965

image-20230116225317890

这里端口号错了;

image-20230116225636915

Jedis操作String类型

image-20230116230006622

image-20230116230410320

image-20230116232123040

image-20230116233740366

Jedis操作List类型

image-20230116234309181

Jedis操作Hash类型

image-20230117003903569

Jedis操作List类型

image-20230117004250911


利用Jedis缓存数据

创建实体类:

image-20230117004714499

https://github.com/alibaba/fastjson

fastjson 是一个java语言编写的高性能且功能完善的JSON库,它采用一种“假定有序快速匹配”的算法,把JSON Parse 的性能提升到了极致。

1
2
3
4
5
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.22</version>
</dependency>

image-20230117005638159

image-20230117135839226

image-20230117135719252


image-20230117140502672

image-20230117140510570

image-20230117141627761

image-20230117142559335

image-20230117142537160