Redis——01 学习

Redis——01

主要学习目标:

  1. Redis 的特点以及使用场景
  2. Redis 单机版
  3. Redis 常用命令
  4. ~ 持久化策略
  5. ~ 主从复制
  6. 哨兵
  7. 集群
  8. Jedis
  9. SpringDataRedis

Redis 的特点以及使用场景

1. NoSQL 简介

关系型数据库为当前主流的数据存储。但是操作关系型数据库都需要进行频繁的 I/O 操作,也是主要影响系统性能的原因之一,并且与数据库的连接和关闭也是需要消耗性能的。即使有了连接池技术,在某些特定的场景下依旧会影响。

所以出现了 NoSQL (Not Only SQL,不仅仅可以使用关系型数据库) 数据库,一些特定的场景使用 NoSQL 会更好。也就是 非关系型数据库,尽量规避对文件进行频繁的 I/O 操作,提升性能。

常见的 NoSQL 数据库:

  • memcached:键值对(K-V 服务),内存型数据库,所有的数据存在内存中。
  • Redis:和 Memcached 类似,还具备持久化能力(只为断电重启恢复数据准备,读写都在内存中进行)
  • HBase:以列作为存储(主要大数据使用)
  • MongoDB:以 Document 做存储 (文件型,分布式),内存+磁盘。

2. Redis 简介

Redis 以 Key-Value 形式进行存储的 NoSQL 数据库,使用 C 语言进行编写,主要操作的数据都在内存中,效率非常高,所以大多情况下 Redis 作为缓存工具使用

Redis 以 solt (槽) 作为数据存储单元,并没有大小限制,每个槽中可以存储 N 多个键值对。Redis 固定具有 16384 个槽,因为槽没有大小限制,只有个数限制,理论上可以实现一个槽是一个 Redis。

Redis 的安装(Linux——CentOS 7.x)

1. 安装 C 语言需要的依赖

Redis 由 C 语言编写,所以需要安装 C 语言库

yum install -y gcc-c++ automake autoconf libtool make tcl

2. Redis 程序主体安装包

查看官网历史版本,这里使用的是 5.0.5,移到 Linux 中。

image-20221214130110779

使用命令将其解压:

tar -zxf redis-5.0.5.tar.gz

会多处一个目录,里面就是 redis 的源码目录,但是此时都是源码(C 语言),还不是应用,需要再安装一下。

在当前目录下执行make 命令,会按照 Makefile 来对其进行编译成可执行文件。

image-20221214130830325

等编译结束后,就可以开始 Redis 正式的安装了。

make install PREFIX=安装路径

如果没有 PREFIX 的话默认安装时当前路径,但是当前这个目录时 Redis 的源码包,不是很合适,所以可以找一个目录将其作为安装目录。

image-20221214131506074

查看安装的Redis路径的文件:

image-20221214132132924

  • server 服务器
  • cli 客户端
  • check-aof 检查 aof
  • check-rdb 检查 rdb
  • benchmark 做统计
  • sentinel 做哨兵的

3. Redis 的启动

启动 bin/redis-server 即可:

image-20221214132622284

默认前台启动,这个窗口是不能关的。

上面显示了 Redis 的一些基本信息:

  • 版本号 5.0.5 64 bit
  • standalone 单机版
  • 端口号:6379
  • 进程ID:11332

接下来开始测试一下客户端是否能连接上:

启动 Redis 的客户端

bin/redis-cli

image-20221214160440149

现在表示已经连接上了,quit 退出。

在服务端 ctrl + c 退出时,发现打印了一些信息:

image-20221214160628551

大概意思是用户请求关闭 Redis 服务,在退出前进行了 RDB 快照保存在了磁盘上。

此时查看目录会发现多了一个文件:dump.rdb,这个是 Redis 帮我们做的一个内存快照,默认情况下会每隔一段时间做一次,以及在关闭服务前做一次,为的是如果服务器宕机,重新启动 Redis 会自动加载 dump.rdb 将数据库恢复到上一次做内存快照的状态。可以在 conf 文件中配置相关参数。

需要注意的是:dump.rdb 文件生成的位置。

你的 redis 服务器在哪个路径下启动的,dump.rdb 就生成在哪,如果换个路径启动,则 dump.rdb 会重新生成,或者如果没有的话启动就不会加载 dump.rdb。

4. 修改 redis.conf 文件

之前编译 redis 的目录中有一个 redis.conf 文件,是 redis 配置文件模板,我们将其复制一份到 redis 的安装目录中进行集中管理。

  • cp redis.conf /usr/local/redis-5/:复制一份到安装目录
  • vim/vi redis.conf:编写 redis 配置文件

修改的地方:

  • 注释掉 bind 127.0.0.1:这里表示如果没有指定 bind 的主机则会监听所有的请求,如果指定了,就只能监听指定的 ip,这里将其注释就能远程访问了。
  • protected-mode yes 改为 protected-mode no :如果没有 bind ip地址,也没有做密码配置的时候,将其安全模式关闭,不然访问会有很大的限制。
  • daemonize no 改为 damonize yes,该设置会生成一个 pid 文件,在后台运行,之前运行 redis 都是前台运行,现在可以在后台运行,有一个守护进程。

启动 redis 并指定配置文件:

bin/redis-server redis.conf

这个配置文件的指定可以是相对路径和绝对路径,所以按理来说 redis.conf 在任意位置都行。

启动效果:

image-20221214165125355

查看当前 redis 进程状态:

ps aux | grep redis

image-20221214165401687

可以看到 redis-server 的端口是:6379,此时在后台运行。

那么怎么关闭呢?

redis-server 并没有直接的关闭指令,但是可以通过 redis-cli 发送一个命令给 server 让其关闭。

  • bin/redis-cli shutdown (推荐)
  • kill -kill PID使用 kill 命令,不推荐可能会造成 redis 持久化失败(快照失败)
posted @ 2022-12-19 10:30  CN_DADA  阅读(23)  评论(0编辑  收藏  举报