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

👨‍🎓作者简介:一位大四、研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: 1name: "张三"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.hqwc.cn/news/325158.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot依赖版本声明

链接 官网 Spring Boot文档官网:​​​​​​https://docs.spring.io/spring-boot/docs/https://docs.spring.io/spring-boot/docs/ Spring Boot 2.0.7.RELEASE Spring Boot 2.0.7.RELEASE reference相关:https://docs.spring.io/spring-boot/docs/2.…

排序算法——关于快速排序的详解

目录 1.基本思想 2.基本原理 2.1划分思想 2.2排序过程 (1)选择基准值 (2)分割过程(Partition) (3)递归排序 (4)合并过程 2.3具体实例 2.4实现代码 2.5关键要…

从细菌基因组中提取噬菌体变异序列工具PhaseFinder的介绍、安装和使用方法

PhaseFinder ## 概览,不翻译了,大家自己看吧 The PhaseFinder algorithm is designed to detect DNA inversion mediated phase variation in bacterial genomes using genomic or metagenomic sequencing data. It works by identifying regions flank…

windows通过ssh连接Liunx服务器并实现上传下载文件

连接ssh 输入:ssh空格用户名ip地址,然后按Enter 有可能出现下图提示,输入yes 回车即可 输入 password ,注意密码是不显示的,输入完,再按回车就行了 以上是端口默认22情况下ssh连接,有些公司它…

Docker一键极速安装Nacos,并配置数据库!

1 部署方式 1.1 DockerHub javaedgeJavaEdgedeMac-mini ~ % docker run --name nacos \ -e MODEstandalone \ -e JVM_XMS128m \ -e JVM_XMX128m \ -e JVM_XMN64m \ -e JVM_MS64m \ -e JVM_MMS64m \ -p 8848:8848 \ -d nacos/nacos-server:v2.2.3 a624c64a1a25ad2d15908a67316d…

虚拟机快照

1.为什么使用快照 在学习阶段我们无法避免的可能损坏Linux操作系统。 如果损坏的话,重新安装一个Linux操作系统就会十分麻烦。 VMware虚拟机(Workstation和Funsion)支持为虚拟机制作快照。 通过快照将当前虚拟机的状态保存下来,在…

集合-及其各种特征详解

集合 概念:是提供一种存储空间 可变 的存储模型,存储的数据容量可以发生改变。(也就是集合容量不固定) 集合关系图 绿色的代表接口,蓝色的代表接口的实现类 单列集合 Collection(接口) 概述:单列集合的…

OpenCV-16图像的基本变换

一、图像的放大与缩小 1. 对小狗图片进行缩放 使用API----resize(src, dsize, [,dst,[fx[,fy[,interpolation]]]]) src:要缩放的图像。 dsize:缩放之后的图像大小,元组和列表表示都可以。 dst:可选参数…

通过使用别名让 SQL 更简短-数据库教程shulanxt.com-帆软软件有限公司

MySQL视频教程导航 https://www.shulanxt.com/database/mysqlvideo/p1 SQL 别名 SQL 别名 通过使用 SQL,可以为表名称或列名称指定别名。 基本上,创建别名是为了让列名称的可读性更强。 列的 SQL 别名语法 SELECT column_name AS alias_name FROM …

计算机基础面试题 |12.精选计算机基础面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

硬盘检测软件 SMART Utility mac功能特色

SMART Utility for mac是一款苹果电脑上磁盘诊断工具,能够自动检测磁盘的状态和错误情况,分析并提供错误报告,以直观的界面让用户可明确地知道自己的磁盘状况。SMART Utility 支持普通硬盘HDD和固态硬盘SSD,能够显示出详细的磁盘信息&#xf…

自存react crash course(1)

1.创建一个react 项目 确保有node.js 创建名为react-task-tracker的react项目 npx create-react-app react-task-tracker 启动项目 npm start2.项目结构 所有组件都是放在src下面的 3. jsx // jsx语法 和html很像&#xff0c;class用的是className来使用css的样式<div…