一、Redis的技术全景
二、Redis能否取代关系型数据库
Redis 的优势
高速性能:Redis 是一个基于内存的数据库,因此它提供了极快的读写速度,非常适合处理需要高并发和快速响应的场景,如缓存、消息队列、实时分析等。
丰富的数据结构:Redis 支持多种数据类型,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等,这为开发者提供了更多的灵活性和便利性。
原子操作:Redis 提供了丰富的原子操作命令,这些命令在单个操作中是原子性的,保证了数据的一致性和并发控制。
持久化:虽然 Redis 是基于内存的,但它也支持将数据持久化到磁盘上,包括 RDB(Redis Database)和 AOF(Append Only File)两种模式,以防止数据丢失。
关系型数据库的优势
ACID 属性:关系型数据库支持 ACID(原子性、一致性、隔离性、持久性)属性,能够确保数据的一致性和完整性。
复杂查询:关系型数据库支持 SQL(Structured Query Language),能够执行复杂的查询和聚合操作,非常适合处理结构化数据。
事务处理:关系型数据库提供了强大的事务处理机制,支持多步骤操作作为一个整体来执行,要么全部成功,要么全部失败。
数据完整性:通过外键、约束等机制,关系型数据库能够确保数据的完整性和一致性。
Redis 和关系型数据库各有优势,它们之间不是取代关系,而是互补关系。根据具体的应用场景和需求,选择合适的数据库技术来构建高效、可靠的系统。
三、Redis的版本选择与安装
1.首先安装CentOS7、VmWare、FinallShell
CentOS7安装包:
http:// https://pan.baidu.com/s/1UUkN6skDp0gPFb9u7t3b3A?pwd=1234
VmWare安装包:
https://pan.baidu.com/s/10nG2ncbB1gH5Wpv1EHTFIg?pwd=1234FinallShell:
安装详细步骤:
2.CentOS上安装wget工具
在Linux系统中,
wget
是一个常用的命令行工具,用于从网络上自动下载文件。如果不缺少wget,可直接执行 wget https://download.redis.io/releases/redis-6.2.7.tar.gz
若Centos7中若缺少wget,执行以下步骤:
配置阿里云的yum仓库镜像源
①curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl
是一个命令行工具,用于传输数据。这里它被用来下载文件。-o /etc/yum.repos.d/CentOS-Base.repo
指定了下载文件的保存路径和文件名。这里,它将会把下载的文件保存到/etc/yum.repos.d/
目录下,并命名为CentOS-Base.repo
。/etc/yum.repos.d/
是yum仓库配置文件的默认存放目录。https://mirrors.aliyun.com/repo/Centos-7.repo
是要下载的文件的URL地址,这里指向的是阿里云的CentOS 7的yum仓库配置文件。这个命令的作用是下载阿里云的CentOS 7 yum仓库配置文件,并将其保存到系统的yum仓库配置文件目录中,以便yum可以使用这个新的仓库配置文件来寻找和安装软件包。
②sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
sed
是一个流编辑器,它能够执行文本文件中的文本替换、删除、新增、选取等文本处理操作。-i
选项是对文件进行就地编辑(即直接修改文件内容,而不是输出到标准输出)。-e
选项后面跟着的是sed要执行的编辑命令。这里有两个-e
选项,意味着要执行两个编辑命令。'/mirrors.cloud.aliyuncs.com/d'
和'/mirrors.aliyuncs.com/d'
是两个编辑命令,它们的作用是从文件中删除所有包含指定字符串(这里是mirrors.cloud.aliyuncs.com
和mirrors.aliyuncs.com
)的行。/etc/yum.repos.d/CentOS-Base.repo
是要编辑的文件名,即刚刚下载的阿里云CentOS 7的yum仓库配置文件。这个命令的作用是删除
CentOS-Base.repo
文件中所有引用mirrors.cloud.aliyuncs.com
和mirrors.aliyuncs.com
的行。这可能是因为用户只想使用阿里云的主镜像源(mirrors.aliyun.com
),而不希望使用其他子域名(如mirrors.cloud.aliyuncs.com
)的镜像源,或者是因为这些子域名在当前的网络环境下访问速度不佳
③使用
yum
包管理器自动安装wget
软件包 yum install wget -y
yum
:是Yellowdog Updater, Modified的缩写,是RPM包管理器的一个前端工具,用于在Fedora、CentOS、RHEL等Linux发行版上自动安装、更新、删除和管理软件包。
install
:是yum
命令的一个子命令,用于安装软件包。
wget
:是一个命令行工具,用于从网络上自动下载文件。它支持HTTP、HTTPS和FTP协议,非常适合于自动下载和更新脚本或程序。
-y
:这个选项是告诉yum
命令在执行过程中自动回答“yes”到所有的提示。这意味着,如果安装过程中需要用户确认(比如,确认软件包的大小、是否继续安装等),yum
会自动同意,而不需要用户手动输入yes
。这在使用脚本或自动化工具时非常有用,因为它可以避免因为等待用户输入而导致的暂停。
3.在Linux上安装Redis
①安装好wget工具后,使用wget下载redis6.2.7
wget https://download.redis.io/releases/redis-6.2.7.tar.gz
②解压到redis-6.2.7目录下
tar xzf redis-6.2.7.tar.gz
tar
是Linux和Unix系统中用于打包和解压文件的工具。xzf
参数中,x
代表解压,z
表示使用gzip进行解压缩,f
表示后面跟着的是要处理的文件名。redis-6.2.7.tar.gz
是要解压的文件名。- 执行这个命令后,
redis-6.2.7.tar.gz
文件会被解压到当前目录下,生成一个名为redis-6.2.7
的目录,里面包含了Redis的源代码。③切换到redis-6.2.7目录下
cd redis-6.2.7/
cd
是change directory的缩写,用于切换当前工作目录。redis-6.2.7/
是上一步解压后生成的目录名,执行这个命令后,你的当前工作目录就会切换到这个目录下
④make
Redis是用C语言编写的,所以需要将源代码编译成机器语言才能运行。
make命令是一个流行的构建工具,它可以根据预先设置的规则自动编译源代码,简化了编译的过程。
make命令的作用就是将Redis源代码编译成可执行文件,使我们能够运行Redis服务器。
make命令的作用是从
Makefile
中读取指令,然后进行编译。这一步骤是安装Redis的一部分,确保源代码被正确地转换成可以在Linux系统上运行的二进制文件。make命令报错如下:
解决办法:
yum -y install gcc
使用
yum
包管理器自动安装GCC编译器,并在安装过程中自动回答所有提示为“yes”
接着运行make命令又报错
解决办法:
make distclean(编译出错时,清出编译生成的文件)
编译安装到指定目录下
make PREFIX=/usr/local/redis install
进入redis的安装目录
cd /usr/local/redis
ls
cd bin
PS: redis的bin目录下可执行文件
bin
目录通常包含用于启动Redis服务器和与Redis服务器进行交互的可执行文件。
redis-server
是用于启动Redis服务器的可执行文件。
redis-cli
是一个命令行工具,用于与Redis服务器进行交互。通过这些工具,用户可以管理Redis数据库,执行各种操作,如设置和获取键值对、列表操作等
四、启动Redis服务三种方式
启动方式1
./redis-server(不常用)
启动方式2
带参数启动./redis-server --port 6380(修改端口号)
启动方式3
配置文件启动
./redis-server /usr/local/redis/redis.conf
执行上述命令前,要先执行以下:
①将当前redis-6.2.7目录下的
redis.conf
文件复制到/usr/local/redis/
目录下
redis.conf
是要复制的源文件名/usr/local/redis/
是目标目录的路径,即redis.conf
文件将要被复制到的位置。②改权限 chmod -R 777 redis.conf
chmod
是 "change mode" 的缩写,用于改变文件或目录的权限777
是一个权限设置,它允许所有用户(文件所有者、所属组的其他成员、系统中的其他所有用户)对文件执行读(r)、写(w)和执行(x)操作。这是一个非常宽松的权限设置,通常不推荐用于配置文件或其他敏感文件,因为它允许任何用户修改文件内容。③通过配置文件来启动(安装目录下的bin目录才有启动的命令!!!)
cd /usr/local/redis
ls
cd bin./redis-server /usr/local/redis/redis.conf
五、服务启动后,新窗口进入Redis bin目录下执行redis命令
①cd /usr/local/redis
②ls
③cd bin
④./redis-cli -p 6379 set name leehom
使用redis-cli
工具连接到运行在端口6379
的Redis服务器,并执行set
命令来设置一个键值对。具体来说,它将键name
的值设置为leehom
⑤./redis-cli get name
这个命令同样使用redis-cli
工具连接到Redis服务器,并执行get
命令来获取之前设置的键值对中的值。
PS:当离开电脑待机时间过久,虚拟机掉线连接成功后,刚刚开启的Redis服务不需要重启
六、停止Redis服务
Redis提供了shutdown命令来停止Redis服务,例如我们目前已经启动的Redis服务,可以执行:
./redis-cli -p 6379 shutdown
以下方式不常用,不推荐!!!
强行终止Redis进程,不会做持久化操作,还会造成缓冲区等资源不能被优雅关闭,极端情况会造成AOF和复制丢失数据的情况。如果是集群,还容易丢失数据。
ps -ef | grep redis
kill -9 进程ID