Redis --- 第二讲 --- 特性和安装

news/2024/10/7 21:33:27/

一、背景知识

Redis特性:

Redis是一个在内存中存储数据的中间件,用于作为数据库,作为缓存,在分布式系统中能够大展拳脚。Redis的一些特性造就了现在的Redis。

在内存中存储数据,通过一系列的数据结构。MySQL主要是通过“表”的方式来存储组织数据的“关系型数据库”。Redis主要是通过“键值对”的方式来存储组织数据的。key都是string,value则可以是上述的这些数据结构。Redis也可以被当作一个非关系型数据库

针对Redis的操作,可以直接通过简单的交互式命令进行操作。也可以通过一些脚本的方式,批量的执行一些操作(可以带有一些逻辑)。Lua也是一个编程语言,用来操作这个Redis

扩展能力:可以在Redis原有的功能基础上再进行扩展。Redis提供了一组API。通过C,C++,Rust语言编写扩展本质上就是一个动态链接库。windows上的dll,可以让exe调用里面包含很多代码。Linux上的动态库式.so虽然和dll格式不同,但是本质上是一样的。我们可以自己去扩展Redis的功能,比如,Redis自身已经提供了很多的数据结构和命令,通过扩展,让Redis支持更多的数据结构以及支持更多的命令

持久化:Redis把数据存储在内存上的。内存的数据是易失的,进程退出/系统重启的时候,内存数据会丢失。所以Redis会把数据存储在硬盘上,内存为主,硬盘为辅。硬盘相当于对内存的数据备份了一下,如果Redis重启了,就会在重启时加载硬盘中的备份数据,使Redis的内存恢复到重启前的状态。

集群:Redis作为一个分布式系统中的中间件,能够支持集群是很关键的。水平扩展,类似于分库分表。一个Redis能存储的数据式有限的,引入多个主机,部署多个Redis节点,每个Redis存储数据的一部分。

高可用:核心叫做冗余/备份。Redis自身也是支持主从结构的,从节点就相当于主节点的备份了。

为啥Redis快:

1、Redis数据在内存中,就比访问硬盘的数据库,要快很多。

2、Redis核心功能都是比较简单的逻辑。核心功能都是比较简单的操作内存的数据结构。

3、从网络角度上,Redis使用了IO多路复用的方式(本质就是使用一个线程,管理很多个soc-ket)。

4、Redis使用的是单线程模型。这样的单线程模型,减少了不必要的线程之间的竞争开销。多线程提高效率的前提是,CPU密集型的任务,使用多线程可以充分利用CPU的多核资源。但是Redis的核心任务,主要就是操作内存的数据结构。不会吃很多的CPU。

5、Redis是使用C语言开发的,所以就快。列在这里不太认可。MySQL也是C语言开发的。

Redis应用场景:

实时的数据存储,把Redis当成了数据库,更低的延迟,更高的吞吐量。大多数场景下,考虑到数据存储,优先考虑的是大。但是仍然有一些场景。考虑的是快。

当然,使用这样的内存数据库,存储大量的数据,需要不少的硬件资源。

缓存:使用MySQL存数据,大,慢。二八原则,把热点数据拎起来,存储在Redis中。Redis存的是部分数据。全量数据都是以MySQL为主的。哪怕是Redis的数据没了,还可以从MySQL中加载回来。

会话存储:cookie =》实现用户身份信息的保存。需要session配合的。服务器这里真正的存储了用户数据。只是在客户端存储了一个用户身份的标识叫做session ID。

消息队列

此处咱们说到的消息队列。不是Linux进程间通信。基于这个可以实现一个网络版本的生产者和消费者模型。分布式系统来说,服务器和服务器之间,有时候也需要使用到生产者消费者模型。

Redis不能做的事情。

存储大规模的数据。

二、安装Redis

安装Redis 5系列

在Linux中进行安装,开始学习的时候,现在本机上安装。后面学到Redis的集群相关的功能的时候,再使用Docker。

在Ubuntu上安装

1、先切换到root用户

2、使用apt命令来搜索redis相关的软件包

apt search redis

装这个

3、使用apt命令安装redis

apt install redis

查看redis服务

但是ip是127.0.0.1

4、需要手动修改配置文件,把ip改了。

这个是redis的配置文件,这里包含了redis的相关功能的配置内容。啥叫作配置文件,很多软件都是由配置文件的,一个大的软件,里面包含很多的功能,有很多可以定制化的操作。就可以通过配置文件选择开启/关闭/设定某些功能。

打开配置文件

修改成这样

redis不要配置密码。虽然咱们没有密码,但是非常安全。只要咱们的数据不值钱,就是非常安全的。

5、重新启动服务器才可以生效

service redis-server restart

6、使用redis自带的客户端来连接服务器

通过ping命令来验证

ctrl + d退出redis客户端。

在Centos上安装Redis 5

如果Centos8,yum仓库中默认的redis版本就是5,直接yum install即可。

如果是Centos7,yum仓库中默认的redis版本是3系列。比较老。

此处我们需要安装额外的软件源。使用scl源。

安装redis

和ubuntu一样需要配置配置文件。先进行软链接

针对配置文件

修改配置文件

服务器程序,一般都会以后台进程的方式运行。Linux中的进程,分成前台进程和后台进程。前台进程会随着终端的关闭而随之被杀死。后台进程不会随着终端关闭而关闭。

设置工作目录

设置日志目录

启动redis服务器,通过命令来启动

查看状态

停止redis服务器,kill -9掉进程。

后续如果修改了配置,需要进行重启才会生效。

三、Redis客户端

redis也是一个客户端-服务器结构的程序。

Redis的客户端也有很多种形态

1、命令行客户端

2、图形化界面的客户端

桌面程序,web程序。

3、基于Redis的api自己开发客户端【工作中最主要的形态】非常类似于MySQL的C语言API和JDBC。

redis快,咱们谈到的redis的快是相对于mysql这样的关系型数据库而言的。但是如果直接和内存中的操作变量相比,就没有优势了,甚至更慢了。是否使用redis要结合实际的需求来确定。但是有了redis之后,就可以把数据单独存储,后续应用服务器重启,不会影响到数据内容。未来要扩展成分布式系统,使用redis是更佳的。一定要对症下药,具体问题具体分析。是否引入一个技术,一定要想清楚来龙去脉,想清楚能够解决啥问题,引入了以后有啥问题。

四、使用官网文档

通过redis-cli客户端和redis服务器交互,设计到很多的redis命令。redis的命令非常多,掌握常用命令,学会使用redis的文档。


http://www.ppmy.cn/news/1535871.html

相关文章

yield:生成器 ----------------

yield:生成器 任何使用yield的函数都称之为生成器,如: def count(n):while n > 0:yield n #生成值:nn - 1另外一种说法:生成器就是一个返回迭代器的函数,与普通函数的区别是生成器包含yield语句&…

23.2 prometheus为k8s做的4大适配工作

本节重点介绍 : k8s监控中的4大采集类型总结prometheus为k8s监控做的4大适配工作 k8s关注指标分析 在监控每个细分的领域时,我们都要先思考下到底需要关注哪些方面的指标。k8s中组件复杂,我们主要专注的无外乎四大块指标:容器基础资源指标…

AR技术在电商行业的应用及优势有哪些?

AR(增强现实)技术在电商行业的应用广泛且深入,为消费者带来了全新的购物体验,同时也为商家带来了诸多优势。以下是AR技术在电商行业的主要应用场景及其优势: 一、应用场景 1、虚拟商品展示与试用 家具AR摆放&#x…

B 私域模式升级:开源技术助力传统经销体系转型

一、引言 1.1 研究背景 随着市场竞争加剧,传统经销代理体系面临挑战。同时,开源技术发展迅速,为 B 私域升级带来新机遇。在当今数字化时代,企业面临着日益激烈的市场竞争。传统的经销代理体系由于管理效率低下、渠道局限、库存压…

eNSP网络配置指南:IP设置、DNS、Telnet、DHCP与路由表管理

1.eNSP基本操作和路由器IP配置命令 登录设备:通过Console口或通过eNSP的Telnet/SSH客户端登录到设备。进入特权模式:输入system-view进入系统视图。接口配置: 进入接口视图,例如interface GigabitEthernet0/0/0。配置IP地址和子网…

黑马头条(10-1开始学习)

文章目录 开始序列化将对象与字符串相加(例如 对象 "")和序列化对象(如 JSON 序列化)之间有几个主要的区别:1. **用途**2. **输出格式**3. **适用场景**4. **性能**5. **灵活性**总结 项目手机验证码Thread…

编写高质量dbt模型实践指南

数据建模是越来越受关注的话题,尤其是在分析工程领域。数据建模和流行的数据转换工具dbt是相辅相成的。虽然数据建模概念已经存在很长时间,但dbt让它更具体、更易实现。 可以将数据模型理解为一系列转换,这些转换将数据从原始形式转化为最终可…

物联网 IOT 与工业物联网 IIOT 极简理解

物联网 IOT IOT(全称 Internet of Things)指物联网,它是指通过互联网连接,将各种物体(例如,传感器、设备、车辆等)和人进行互联互通的网络系统 物联网的核心是将各种物体连接到互联网&#xff…