Redis:原理速成+项目实战——初识Redis、Redis的安装及启动、Redis客户端

news2024/11/26 18:37:36

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习
🌌上期文章:首期文章
📚订阅专栏:Redis速成
希望文章对你们有所帮助

在此之前,我做过的项目里面也用到了Redis,但是其实我用的版本是Windows版本的,只学了一点皮毛,会拿来用而已,但是企业级开发大多都是用的Linux版本的Redis,所以我要把之前项目中Redis的用法给改掉,也顺便速成一下Redis的原理,毕竟还要在毕业后的暑假实习,Redis这种最基础的得扎实点。

Redis基础篇1

  • 初识Redis
    • 认识NoSQL
    • 认识Redis
  • Redis的安装及启动的三种方式
    • Linux系统与虚拟机准备
    • FinalShell软件准备与远程连接
    • Redis安装
      • 安装Redis依赖
      • 上传安装包并解压
      • 进入Redis并运行编译命令
    • Redis的启动
      • 默认启动
      • 指定配置启动
      • 开机自启
  • Redis客户端
    • Redis命令行客户端
    • Redis的图形化界面客户端(非必要)

初识Redis

认识NoSQL

Redis中的数据库与我们之前常用的MySQL这种关系型数据库是不太一样的,我们可以将NoSQL与SQL进行简单的对比:
1、结构化存储与非结构化存储
(1)SQL是结构化型的存储方式

idnameage
1张三18
2李四20

(2)NoSQL是非结构化型的存储方式

keyvalue
id1
name张三
age18

或者是Document类型的:
{id:2 name:“李四” age:20}
亦或是Graph类型的等等。。。
可以看出NoSQL的存储方式非常的不统一。

2、关系型数据库与非关系型数据库
(1)SQL通过外键来建立表之间的关系
例如以下两表:

idnameage
1张三18
2李四20

idtitleprice
10库里101999
20詹姆斯131999

我们可以开另一张结构化表来将两表联系起来:

iduesr_iditem_id
1110
2120

(2)NoSQL是非关系型的
将上述表达的方式按照document格式来存储,即:

{
	id: 1
	name: "张三"
	orders: [
		{
			id: 1,
			item: {
				id: 10, title: "库里10", price: 1999
			}
		},
		{
			id: 2,
			item: {
				id: 20, title: "詹姆斯13", price: 1999
			}
		}
	]
}

这样的方式明显是更为复杂的,数据库本身不会帮忙维护各种各样的关系的。
3、查询方式的不同
(1)SQL查询语法固定,那么可以用相同的语句进行查询,更为方便
(2)NoSQL查询语法不固定(Redis、MongoDB、elasticsearch的查询方式都不一样)
4、事务上的差异
(1)SQL是满足ACID特性的
(2)NoSQL要么是无事务的,要么就只能满足基本的一致性,而不满足ACID特性(NoSQL满足base特性)

总结:

SQLNoSQL
数据结构结构化非结构化
数据关联关联的非关联的
查询方式SQL查询非SQL
事务特性ACIDBASE
存储方式磁盘内存(说明查询性能高)
拓展性垂直水平(考虑数据拆分的需求)
使用场景数据结构固定;相关业务对数据安全性、一致性要求较高数据结构不固定;对一致性、安全性要求不高;对查询性能要求高

认识Redis

Redis称为远程词典服务器,是一个基于内存的键值型NoSQL数据库。
特征:
(1)键值型:对value支持不同数据结构,功能丰富
(2)单线程:每个命令具备原子性
(3)低延迟,速度快(基于内存(最重要原因)、IO多路复用、良好的编码)
(4)支持数据持久化(定期存储到磁盘去)
(5)支持主从集群、分片集群
(6)支持多语言客户端

Redis的安装及启动的三种方式

Linux系统与虚拟机准备

首先我们要准备好相应的环境,大家如果早就有相关环境了就可以跳过了,对于Linux相信大家应该还是会知道一些基础知识的,这就够了,完全不会的最好自行去速成一下。
我们需要有Linux操作系统以及虚拟机,我这里用的虚拟机是VMware15,这个虚拟机随便用哪个肯定都没啥影响的,Linux操作系统建议使用比较常见的centOS07(大家也可以用Ubuntu,但是命令跟centOS还是有点不一样的,比如软件下载命令等),可以在官网中下载,这里有下载的一个网盘链接:
centOS7安装——云盘链接
建议用会员号下载,有4.3G的大小。
接着直接打开虚拟机并创建新的虚拟机,并把之前下载的ios文件安装进去,打开即可(如果大家用的是更高版本的虚拟机,也选择简易安装):
在这里插入图片描述
简单配置一下信息,密码设置简单一点就好了,我设置为123456:
在这里插入图片描述
设置一下存放位置:
在这里插入图片描述
设置磁盘大小,改大一点,我这里改成了40:
在这里插入图片描述
接着就创建完成了,等待ios的建议安装完成,到这个页面以后可能要等个十几分钟:
在这里插入图片描述

FinalShell软件准备与远程连接

我们在这里要安装好这个软件,并使用这个软件连接Linux操作系统,这样会给我们的开发提供很大的便捷,例如我们可以很方便的使用FinalShell来将文件上传到Linux的某个目录中,FinalShell安装地址:
FinalShell安装地址
直接一直next,中途改一下路径,然后安装一下就好了。
接着我们进行远程连接,我们先在Linux中输入ifconfig,接着复制ip地址:
在这里插入图片描述
复制完后去FinalShell中建立SSH连接(如果后序步骤在上传文件的时候失败,请将这里的用户名改为root):
在这里插入图片描述
在这里插入图片描述
最后双击后再点击:接受并保存,成功连接:
在这里插入图片描述
之后有关于Linux的操作就可以在这里进行了,更为方便简洁。

Redis安装

安装Redis依赖

因为Redis是基于C语言编写的,所以要先安装Redis所需要的gcc依赖:
在这里插入图片描述
在这里插入图片描述

上传安装包并解压

首先我们要下载好Redis安装包,大家可以自行去官网下载,这里提供一个Redis-6.2.6的网盘下载链接:
Redis-6.2.6网盘链接下载
将下载后的安装包放到/usr/local/src目录:
在这里插入图片描述
进入这个目录并输入:tar -zxvf redis-6.2.6.tar.gz,即可进行解压

进入Redis并运行编译命令

cd redis-6.2.6
make && make install

运行结束就安装完成了,可以在目录**/usr/local/bin**中查看:
在这里插入图片描述
这个目录是默认配置到环境变量的,所以在任意目录都可以运行目录,其中:

redis-cli:redis提供的命令行客户端
redis-server:redis的服务端启动脚本
redis-sentinel:redis的哨兵启动脚本

Redis的启动

默认启动

在任意目录输入redis-server就可以启动Redis了:

redis-server

在这里插入图片描述
这属于前台启动,这种方式会阻塞整个窗口,按住ctrl+c才能停止,并不友好。

指定配置启动

让Redis在后台启动,就需要修改一下Redis配置文件,redis-6.2.6中的redis.conf文件即是配置文件。
1、我们把配置文件备份一下,防止配置出错导致的崩溃:

cp redis.conf redis.conf.bck

2、修改redis.conf文件中的一些配置:

vi redis.conf

我们要修改的主要内容如下:

# 监听地址默认为127.0.0.1,导致只能本地访问,修改位0.0.0.0就可以在任意IP访问
bind 0.0.0.0
# 守护进程设置为yes即可后台运行
daemonize yes
# 设置密码,访问Redis必须输入该密码
requirepass 123456

其他:

# 监听端口
port 6379
# 工作目录,默认为当前目录,也就是redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库的数量,设置为1(默认是16,编号0-15)
databases 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,我们可以指定日志文件名
logfile "redis.log"

上面的内容只需要进入redis.conf以后,利用查找的方式定位以后修改就很快了。

3、启动Redis:
先进入Redis的安装目录,再启动Redis

cd /usr/local/src/redis-6.2.6
redis-server redis.conf

4、查看Redis是否运行,我们只需要查看进程管理器:

ps -ef | grep redis

在这里插入图片描述
5、停止Redis:
停止需要利用kill命令,指定进程号来杀死进程

kill -9 122712

在这里插入图片描述

开机自启

上述的方式都还是比较麻烦的,我们可以通过配置来实现开机自启动。
1、我们新建一个系统服务文件:

vi /etc/systemd/system/redis.service

2、内容如下:

[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

3、重载系统服务:

systemctl daemon-reload

现在我们的Redis成功被我们的系统管理了。

4、启动与Redis状态查看:

# 启动
systemctl start redis
# Redis状态查看
systemctl status redis

在这里插入图片描述
可以看到已经是有效运行了的。
其他命令:

# 停止Redis
systemctl stop redis
# 重启Redis
systemctl restart redis

5、开机自启

systemctl enable redis

在这里插入图片描述
这样我们就实现了开机自启。

Redis客户端

安装完Redis,我们就可以进行Redis的操作,从而实现CRUD了,这里就需要用到Redis客户端,包括:
1、命令行客户端
2、图形化界面客户端
3、编程客户端(后序讲)

Redis命令行客户端

Redis安装完成后就自带了命令行客户端redis-cli,使用方式:

redis-cli [options] [commonds]

常见的options:

-h 127.0.0.1:指定要连接的Redis节点的IP地址,默认为127.0.0.1
-p 6379:指定要连接的Redis节点的端口,默认为6379
-a 123456:指定Redis的访问密码

其中commonds就是Redis的操作命令,如:

ping:与Redis服务器做心跳测试,服务器正常会返回pong

如果不指定commond,则会进入redis-cli的交互控制台。
这里做个实验,将Redis与我们的虚拟机进行连接。
1、首先得到这台虚拟机的IP地址:

ifconfig

在这里插入图片描述
2、接下来就直接利用命令连接到虚拟机即可:
在这里插入图片描述
像打乒乓球一样,ping-pong。
之所以会报warning,是因为-a方式不是太安全,我们也可以先不指定密码,然后利用AUTH来指定用户名和密码(这里没有用户名只有密码):
在这里插入图片描述
接下来就可以对Redis进行各种增删改查了。

Redis的图形化界面客户端(非必要)

GitHub上有人编写了这个图形化界面客户端RedisDesktopManager,但是提供的只是RedisDesktopManager的源码,并没有安装包。
而另有一个大神提供了这个源码编译运行后的安装包,源码更新那么这个安装包也会更新:
Redis图形化界面客户端——安装包
安装很简单,打开就是这样:
在这里插入图片描述
填写相关信息,进行连接:
在这里插入图片描述

如果无法连接那就是Redis的防火墙没关,用这条指令关一下:

systemctl stop firewalld.service

但是这也只是个图形化界面,跟之前学习mysql的时候用到的图形化界面Navicat、sqlyog一个意思,并不是必要的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1342720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

引领创业新风潮,花为缘享奢二手奢侈品买卖如何突出重围脱颖而出

数据显示,中国消费者的奢侈品消费金额占全球的份额从2000年的1%左右提升到2017年的33%。奢侈品消费的主战场仍是品牌发源地的欧洲和美国,中国消费者奢侈品消费规模全球第一。奢侈品逆势增长与持续涨价这件事,无疑预示着二级奢侈品转售市场将迎…

HarmonyOS 组件生命周期

接下来 我们来说组件生命周期 组件包括两个生命周期 aboutToAppear 组件准备加载时触发 aboutToDisappear 组件销魂时触发 我们组件编写代码如下 Entry Component struct Index {State state:boolean true;build() {Row() {Column() {if(this.state){subassembly()}Button(…

66biolinks v42.0.0 已注册 – 生物短链接、URL 缩短器、QR 码和 Web 工具 (SAAS) 源码

66biolinks v42.0.0:全能生物短链接与网络工具平台 一、开篇介绍 66biolinks v42.0.0是一款集生物链接、URL缩短器、二维码和网络工具于一体的综合性软件解决方案。作为社交生物链接平台的佼佼者,66biolinks提供了全方位的功能,旨在满足用户…

最新AI系统ChatGPT网站H5系统源码,支持AI绘画,GPT语音对话+ChatFile文档对话总结+DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

Vue2+element-ui 实现select选择器结合Tree树形控件实现下拉树效果

效果&#xff1a; DOM部分 &#xff1a; // 设置el-option隐藏的下拉选项&#xff0c;选项显示的是汉字label&#xff0c;值是value // 如果不设置一个下拉选项&#xff0c;下面的树形组件将无法正常使用 <el-form-item label"报警区域" prop"monitorId"…

2023年度总结(找到工作)

转眼2023年结束了&#xff0c;今天已经12月29日了。从2022年12月25日考研失败后&#xff0c;2023年就变成了找工作以及上班度日的时光了。针对2023年&#xff0c;我想对自己所说的是&#xff1a;终于找到工作了。作为一个普通的专升本&#xff0c;考研落榜生来说&#xff0c;能…

VsCode(Visual Studio Code) 安装插件教程

VsCode&#xff08;Visual Studio Code&#xff09; 安装插件教程 1、打开VsCode 桌面上、最近安装程序上找找吧 在桌面上双击&#xff0c;打开 2、打开的效果图 3、点击左侧最后的插件图标 4、打开后如下图所示 5、在输入框中输入Go 6、同样在安装插件页面也可以卸载、安装…

rax3000m刷openwrt固件

rax3000m刷机过程&#xff08;nand版本&#xff09; 刷机准备文件https://www.123pan.com/s/X5m9-6Ynj.html提取码:VtBW 接线关系&#xff1a;路由器lan口接电脑 1.上传配置开启ssh的配置文件&#xff08;登录路由器后台管理界面在找到配置管理&#xff0c;上传配置文件rax3…

联合办公行业即将走向寒冬?如何重拾创业者信心

近年来&#xff0c;联合办公行业固然经历了迅猛发展&#xff0c;但现在似乎遭遇了一个潜在的拐点。面对经济的下行压力&#xff0c;一些人士担忧联合办公行业可能会步入寒冬。就在这个关键时刻&#xff0c;如何重拾创业者的信心成为行业内急需解决的问题。 首先要认识到的是&am…

探索 Node.js 与 C++ 的绑定:使用 node-addon-api

在 Node.js 中使用 C 进行绑定是一种强大的方式&#xff0c;可以充分利用 C 的性能优势。在本文中&#xff0c;我们将探讨如何使用 node-addon-api 来实现这一目标。 1. 为什么选择 C 绑定&#xff1f; Node.js 是一个基于 JavaScript 的平台&#xff0c;它使得开发人员能够使…

中介者模式-Mediator Pattern-1

如果在一个系统中对象之间的联系呈现为网状结构&#xff0c; 对象之间存在大量的多对多联系&#xff0c;将导致系统非常复杂。 这些对象既会影响别的对象&#xff0c;也会被别的对象所影响。 这些对象称为同事对象&#xff0c;它们之间通过彼此的相互作用实现系统的行为。 在网…

如何本地搭建FastDFS文件服务器并实现远程访问【内网穿透】

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

2024年软考中级-网络工程师

网络工程师证书考到后&#xff0c;通过本级考试的合格人员能根据应用部门的要求进行网络系统的规划、设计和网络设备的软硬件安装调试工作&#xff0c;能进行网络系统的运行、维护和管理&#xff0c;能高效、可靠、安全地管理网络资源&#xff1b;作为网络专业人员对系统开发进…

sqlite3 c++ VS编译生成静态库

官网 https://www.sqlite.org/download.html 下载sqlite-amalgamation和x86版本下载sqlite-dll-win32-x86、x64位版本sqlite-dll-win64-x64 解压 SQLITE-AMALGAMATION包含 shell.csqlite3.csqlite3.hsqlite3ext.hsqlite-dll-win32-x86包含 sqlite3.def sqlite3.dll建立一个空…

使用ArcMap进行选址服务,适宜性分析

文章目录 题目分析技术步骤1&#xff0c;环境设置2&#xff0c;计算坡度&#xff1a;空间分析——表面分析——坡度&#xff0c;根据DEM求坡度4&#xff0c;距离计算3&#xff0c;坡度赋分4&#xff0c;对学校赋分5&#xff0c;娱乐设施赋分6&#xff0c;土地利用类型赋分7&…

springboot整合hadoop遇错

错误一&#xff1a; Caused by: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. 解决&#xff1a; 下载&#xff1a;https://github.com/steveloughran/winutils 选择一个版本 例如&#xff1a;3.0.0 &#xff0c;将里面的hadoop.dll文件复制…

Linux磁盘阵列

一.RAID磁盘阵列介绍 RAID&#xff08;Redundatnt Array of lndependent Disks&#xff09;&#xff0c;全称为&#xff1a;独立冗余磁盘阵列 解释&#xff1a; RAID是一种把多块独立的硬盘&#xff08;物理硬盘&#xff09;按不同的方式组合起来形成一个硬盘组&#xff08;逻…

【教程】自动检测和安装Python脚本依赖的第三方库

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 背景说明 对于新python环境&#xff0c;要运行某个脚本&#xff0c;可能需要安装很多库&#xff0c;一般可以通过提供的requirements.txt来自动安装。但如果没有这个txt&#xff0c;那就得手动一个一个安装&#…

Live800:客服售前、售中,售后需要做哪些服务?有哪些区别?

客服在售前、售中和售后阶段扮演着重要的角色&#xff0c;他们为顾客提供全方位的服务&#xff0c;确保顾客的满意度和忠诚度。尽管这三个阶段都涉及到与顾客的互动&#xff0c;但每个阶段的服务内容和重点有所不同。 在售前阶段&#xff0c;客服的主要任务是提供产品或服务的信…