首页 > 数据库 >Redis——01 学习

Redis——01 学习

时间:2022-12-19 10:48:10浏览次数:54  
标签:01 Redis 数据库 redis 学习 conf rdb 安装

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 持久化失败(快照失败)

标签:01,Redis,数据库,redis,学习,conf,rdb,安装
From: https://www.cnblogs.com/cndada/p/16991595.html

相关文章

  • Redis——02 学习
    Redis——02前面了解了Redis以及在Linux的安装,下面了解一些Redis常用的命令。Redis常用命令:Redis是Key-Value形式,Key为字符串类型,而Value的取值类型如下:......
  • Redis——03 学习
    Redis——03Redis持久化策略Redis不仅仅是一个内存型数据库,还具备持久化能力。这个持久化并不是Redis数据库读写的主要内容,跟MySQL不一样,这个持久化只是为了备份,......
  • Redis——05 学习
    Redis——05之前了解了主从复制以及哨兵,接下来了解集群模式。集群(Cluster)先来聊一下前面学的哨兵Sentinel,一般利用哨兵对master节点继续监控,如果master发生异常,则......
  • Redis——04 学习
    Redis——04之前讲了redis的主从复制模型的优点以及搭建效果,但是依然有自己的缺陷,如果主节点宕机,那么其他从节点可能还有运行的,如果此时任意一个从节点升级生了主节点那......
  • Redis——06 学习
    Redis——06将Redis的基本使用以及三种模式进行了学习和了解。接下来就学习如何在Java中以及SpringBoot框架中使用Redis。JedisRedis在Java上的操作多半是集......
  • Markdown学习
     标题#+标题名字+空格+回车#号数量代表几级标题字体helloworld!!两边都加**变成粗体helloworld!!两边都加*变成斜体helloworld!!三个*变成斜体加粗helloworld!!两边......
  • 【算法训练营day22】LeetCode235. 二叉搜索树的最近公共祖先 LeetCode701. 二叉搜索树
    LeetCode235.二叉搜索树的最近公共祖先题目链接:235.二叉搜索树的最近公共祖先初次尝试利用二叉搜索树的性质,迭代法即可,判断目标节点的值是否在当前节点值的两侧或与当......
  • delphi D11编程语言手册 学习笔记(P424-477) 泛型
      这本书可以在Delphi研习社②群256456744的群文件里找到.书名:Delphi11AlexandriaEdition.pdf 泛型在C++中叫做类型模板(templateclasses),单从字面上理......
  • pycaret学习之异常检测
    异常检测是识别与大多数数据明显不同的稀有物品、事件或观察结果的任务。通常,异常项目会转化为某种问题,例如银行欺诈、结构缺陷、医疗问题或文本中的错误。存在三大类异常......
  • 高性能Redis服务器注意事项
    摘要昨天简单理了理安装与配置相关的但是很多比较重要的核心性能参数并没有进行学习与探讨就基于昨天理解不深入的地方进行进一步的学习与了解希望能够提高Redis-Serve......