黑马点评DAY1|Redis入门、Redis安装

什么是Redis?

redis是一种键值型数据库,内部所存的数据都是键值对的形式,例如,我们可以把一个用户数据存储为如下格式:

id$1600
name张三
age21

但是这样的存储方式,数据会显得非常松散,因为这本质上是一个用户的信息,所以我们一般使用JSON字符串去存储用户的各个字段:

1001{
“id” :1001
“name”:“张三”
“age”:21
}
当然这里的也可以是list、hash表等。

像这样没有表的数据库被称为Nosql数据库

NoSQL数据库

SQL(关系型数据库)和NoSQL(非关系型数据库)的差异:

  • 结构化:在sql中所有的数据格式都是严格按照表结构的限制条件的。并且表的结构一般不修改,因为当数据巨量的时候修改表会带来问题。

    相对地,NoSQL数据库的约束 较少,就比如JSON格式的数据库。

  • 关系型:SQL中表和表之间通过外键建立关系。在这里插入图片描述
    NoSQL中的关系通过JSON来维护,比如要表示一个用户下单的数据可以直接可以用一个JSON文档嵌套的形式来表示,在JSON中,{}表示一个对象,[]表示一个数组。:

在这里插入图片描述

  • SQL查询
    比如,SQL想要查询id为1的用户,可以这样写:
select * from tb_user where id=1;

格式固定,语法固定,所以只要是关系型数据库,都可以用相同的语句去查询。
NoSQL的查询是非SQL,语法不固定,Redis中对应的语法是:

get user:1
  • ACID : 关系型数据库支持事务的ACID原子性、持久性、隔离性、一致性)的特性,NoSQL则无法满足。如果对于事务要求较高,建议使用NoSQL数据库开发。
  • SQL数据大都存储在磁盘上,NoSQL数据大都存储在内存中,所以查询性能较高

两种数据库分别适合的场景

SQL:

  • 业务结构相对固定
  • 业务对数据安全性、一致性要求较高

NoSQL:

  • 数据结构不固定
  • 对一致性安全性要求不高
  • 对性能要求较高

认识Redis

全程问Remote Dictionary Server(远程词典服务器),因为该数据库是根据key去寻找value,类似于词典。
是一个基于内存的NoSQL数据库。
特征:

  • 键值型,支持不同数据结构
  • 单线程,每个命令具备原子性
  • 低延迟,速度快(原因:基于内存、IO多路复用、良好的编码
  • 支持数据持久化:定时保存数据到磁盘,确保断电的时候数据不丢失
  • 支持主从集群、分片集群
    主从集群:多台服务器中有一个主节点只负责写数据,其余服务器读数据,这样读写分离可以提高性能。并且如果主节点损坏可以选出一个新的主节点,并且从节点也可以备份主节点数据,以防止数据丢失。
    分片集群:一份数据分段存储到多台服务器上,可以处理的数据的上限提高了,并且每一个节点的数据可以扩展,提高性能。
  • 支持多语言客户端

安装Redis

  • 打开虚拟机CentOS并用FinalShell链接虚拟机
  • 执行 yum install -y gcc tcl 命令安装依赖,该界面说明安装完毕
 yum install -y gcc tcl 

在这里插入图片描述

  • 执行cd /usr/local/src/进入到目录,并将资料中的redis-6.2.6拖拽到这个虚拟机该目录下。
cd /usr/local/src/

在这里插入图片描述

  • 执行tar -zxvf redis-6.2.6.tar.gz解压该文件
tar -zxvf redis-6.2.6.tar.gz
  • cd redis-6.2.6进入redis-6.2.6目录,执行make && make install安装redis,如果没有报错就说明安装成功了。
    在这里插入图片描述
  • 我们可以执行cd /usr/local/bin/进入到redis的bin文件查看,发现一些重要的文件
cd /usr/local/bin/

在这里插入图片描述- 我们可以在任何目录下运行redis,为了验证这个想法,先 cd - 后退到之前的redis安装目录,执行redis-server启动redis,出现以下redis的日志界面,redis启动了!

redis-server

在这里插入图片描述

  • 注意:这样的启动方式叫作前台启动,如果想建立连接必须重新打开一个窗口,重新连接。crtl+C就停止redis。所以这种启动方式不友好。
  • 想要后台启动redis就需要修改redis的配置文件并制定配置文件启动。在这之前我们先备份一份原始配置文件,以免修改错了,执行:
cp redis.conf redis.conf.bck
  • 展示配置文件内容
vi redis.config
  • 修改的时候有下面几点 需要注意
    注意在修改之前先按i进入到insert模式
    esc可以推出修改模式,/ + 需要查询的关键词可以查询文件内容,n可以寻找关键词下一个位置
    在非insert模式下输入“:wq”就可以保存并退出
# 默认的监听地址为:127.0.0.1,只能在本地访问,监听的地址在开发阶段改为0.0.0.0,这样就可以在任意IP访问redis
bind 0.0.0.0# 守护线程改为yes,即可在后台运行
daemonize yes# 设置密码,拒绝恶意访问!
requirepass 123321

其他可选配置

# 监听的端口
port 6379# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 1# 设置redis能够使用的最大内存
maxmemory 512mb# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"
  • 完成配置,启动redis,这次启动之后没有任何的日志输出,说明redis已经变成了后台运行
redis-server redis.conf
  • 验证redis是否在后台运行了
ps -ef | grep redis

这里发现 113989 进程在运行
在这里插入图片描述
当然也可以杀死进程

kill -9 113989

再执行ps -ef | grep redis发现进程消失了
在这里插入图片描述

  • 设置开机自启

    • 首先,新建一个系统服务文件:
    vi /etc/systemd/system/redis.service
    
    • 内容如下(这里将如下内容粘贴之后需要esc再:wq保存一下):
    [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
    
    • 重新加载服务
    systemctl daemon-reload
    
    • 现在,我们可以用下面这组命令来操作redis了:
    # 启动
    systemctl start redis
    # 停止
    systemctl stop redis
    # 重启
    systemctl restart redis
    # 查看状态
    systemctl status redis
    

    在这里插入图片描述

    • 执行下面的命令,可以让redis开机自启:
    systemctl enable redis
    

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

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

相关文章

云计算HCIE+RHCE学员的学习分享

大一下学期,我从学长嘴里了解到誉天教育,当时准备考RHCE,我也了解了很多培训机构,然后学长强烈给我推荐誉天,我就在誉天报名了RHCE的课程。 通过杨峰老师的教学,我学到了许多Linux知识,也了解了…

笔记本电脑部署VMware ESXi 6.0系统

正文共:888 字 18 图,预估阅读时间:1 分钟 前面我们介绍了在笔记本上安装Windows 11操作系统(Windows 11升级不了?但Win10就要停服了啊!来,我教你!),也介绍了…

【单片机毕业设计选题24037】-基于STM32的电力系统电力参数无线监控系统

系统功能: 系统上电后,OLED显示“欢迎使用电力监控系统请稍后”,两秒后显示“Waiting..”等待ESP8266初始化完成, ESP8266初始化成功后进入正常页面显示, 第一行显示电压值(单位V) 第二行显示电流值&am…

互联网大厂核心知识总结PDF资料

我们要敢于追求卓越,也能承认自己平庸,不要低估3,5,10年沉淀的威力 hi 大家好,我是大师兄,大厂工作特点是需要多方面的知识和技能。这种学习和积累一般人需要一段的时间,不太可能一蹴而就&…

VMware虚拟机迁移:兼用性踩坑和复盘

文章目录 方法失败情况分析:参考文档 方法 虚拟机关机,整个文件夹压缩后拷贝到新机器中,开机启用即可 成功的情况: Mac (intel i5) -> Mac (intel i7)Mac (intel, MacOS - VMware Fusion) -> DELL (intel, Windows - VMw…

Zynq7000系列FPGA中的DMA控制器简介(二)

AXI互连上的DMA传输 所有DMA事务都使用AXI接口在PL中的片上存储器、DDR存储器和从外设之间传递数据。PL中的从设备通过DMAC的外部请求接口与DMAC通信,以控制数据流。这意味着从设备可以请求DMA交易,以便将数据从源地址传输到目标地址。 虽然DMAC在技术…

mysql5.7安装使用

mysql5.7安装包:百度网盘 提取码: 0000 一、 安装步骤 双击安装文件 选择我接受许可条款–Next 选择自定义安装,下一步 选择电脑对应的系统版本后(我的系统是64位),点击中间的右箭头,选择Next 选择安装路径–Next 执行…

matlab可以把图像数据转换为小波分析吗

🏆本文收录于《CSDN问答解答》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&…

【后端面试题】【中间件】【NoSQL】ElasticSearch 节点角色、写入数据过程、Translog和索引与分片

中间件的常考方向: 中间件如何做到高可用和高性能的? 你在实践中怎么做的高可用和高性能的? Elasticsearch节点角色 Elasticsearch的节点可以分为很多种角色,并且一个节点可以扮演多种角色,下面列举几种主要的&…

【软件测试】白盒测试(知识点 + 习题 + 答案)

《 软件测试基础持续更新中》 最近大家总是催更……,我也是百忙之中给大家详细总结了白盒测试的重点内容! 知识点题型答案,让你用最短的时间,学到最高效的知识! 整理不易,求个三连 ₍ᐢ..ᐢ₎ ♡ 目录 一、…

Spring专题一:源码编译

下载源码 因为公司使用的是Spring5.2.x所以就下载了这个版本,github源码地址如下: GitHub - spring-projects/spring-framework at v5.2.6.RELEASE: 如果网络不稳定可以使用下载压缩版即可,网络稳定的话还是建议使用git clone …

【redis】redis RDB

1、概述 1.1定义 RDB (Redis Database) 是 Redis 的默认持久化机制,它能够在指定的时间间隔内将内存中的数据集快照写入磁盘。RDB 持久化产生的文件是一个经过压缩的二进制文件,通过该文件可以还原生成 RDB 文件时的数据库状态。 1.2特点 一次性全量备…

【工具分享】SQLmap

文章目录 工具介绍安装方式环境准备安装 sqlmap 工具介绍 sqlmap 是一个非常强大的自动化 SQL 注入工具,主要用于渗透测试和安全审计。它能够检测和利用 SQL 注入漏洞,进而访问数据库服务器。 GitHub:https://github.com/sqlmapproject/sql…

Everything 一款功能强大的搜索工具

要在电脑上使用Everything搜索文件,您需要使用以下步骤: 在您的电脑上下载并安装Everything软件。您可以从官方网站https://www.voidtools.com/downloads/下载最新版本的软件。 安装完成后,打开Everything软件。 在搜索栏中输入您要查找的文…

JsonCpp:更简洁的序列化及反序列化

简介 jsoncpp 提供了一组简单易用的 API&#xff0c;使得在 C 程序中处理 JSON 数据变得更加方便和高效。 安装 linux环境下安装jsoncpp sudo apt-get update sudo apt-get install --reinstall libjsoncpp-dev建立软链接确保编译器找到头文件 #include <json/json.h>…

Java数据结构6-栈与队列

1. 栈(Stack) 1.1 概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则 压栈…

机电公司管理小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;管理员管理&#xff0c;客户管理&#xff0c;公告管理&#xff0c;考勤管理&#xff0c;请假管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;公告&#xff0c;机电零件&…

gitee配置ssh教程

生成公钥 执行命令&#xff1a; ssh-keygen -t rsa查看公钥 cat ~/.ssh/id_rsa.pub这个公钥就是要复制粘贴到Gitee中的ssh公钥。 配置Gitee SSH公钥 来到Gitee的ssh公钥中&#xff0c;配置

代码随想录算法训练营第四十六天| 121. 买卖股票的最佳时机 ,122.买卖股票的最佳时机II,123.买卖股票的最佳时机III

121. 买卖股票的最佳时机 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int maxProfit(int[] prices) {if(prices.length 0){return 0;}int[][] dp new int[prices.length][2];dp[0][0] 0;dp[0][1] -prices[0];for(int i1;i<prices.length;i){dp[i][0…

Go环境安装---附带每一步截图

Windows环境 Go安装包下载 下载后直接安装步骤按照即可。 测试 winR 输入cmd 在命令行输出go version可以看到自己的版本。 go env 查看环境变量 在桌面创建hello.go的文件 编写代码。注意&#xff0c;编码必修是UTF-8 在命令行输入路径刚刚代码所在的路径&#x…