当前位置: 首页 > news >正文

Redis学习路线(1)—— Redis的安装

一、NoSQL

SQL VS NoSQL

1、名称

  • SQL 主要是指关系数据库。
  • NoSQL 主要是指非关系数据库。

2、存储结构

  • SQL 是结构化的数据库,以表格的形式存储数据。
  • NoSQL 是非结构化的数据库,以Key-Value(Redis),JSON格式文档(MongoDB),关系图(Neo4j),列类型(HBase)存储数据

3、数据之间的关联性

  • SQL 的数据表之间具有主键-外键关联性。
  • NoSQL 的数据之间相互独立,可以进行嵌套建立伪关联。

4、查询方式

  • SQL 的查询语法是固定的,可以迁移到其它数据库进行查询。
  • NoSQL 的查询语法不固定,每种数据库都有自身的语法

5、事务支持

  • SQL 满足ACID原则(原子性,一致性,隔离性,持久性)
  • NoSQL 满足基本的事务原则,但不完整

6、存储方式

  • SQL 存储在 磁盘
  • NoSQL 存储在 内存

7、扩展性

  • SQL:垂直 (对分布式拆分不友好)
  • NoSQL:水平 (对分布式拆分友好)

8、使用场景

  • SQL
    • 数据结构固定
    • 相关业务对数据安全性、一致性要求高
  • NoSQL
    • 数据结构不固定
    • 对一致性、安全性要求低
    • 对性能要求高

二、Redis

(一)介绍

Redis于意大利人 ANTIREZ 在2009年发布,全称是 ReMote Dictionary Server ,远程词典服务器,是一款基于内存的键值对类型NoSQL数据库。

(二)特点

  • 键值对型: value支持多种不同数据结构,功能丰富
  • 单线程: 每个命令具备原子性
  • 低延迟,速度快: 基于内存、IO多路复用、良好的编码(底层是 C语言
  • 支持数据持久化: 持久化到磁盘
  • 支持主从集群、分片集群: 一种安全策略,避免数据丢失
  • 支持多语言客户端: 可以在多语言的开发中使用

三、安装Redis

(一)单机安装Redis

官方网站: https://redis.io/

1、安装Redis依赖

由于Rdis是基于 C 编写的,所以我们需要安装 gcc 依赖。

yum install -y gcc tcl

2、安装redis

方式一:直接用Docker pull Redis镜像

docker pull redis:6.2.6

方式二:下载压缩包,上传至虚拟机并解压即可

#解压完毕进入redis文件夹
cd redis-6.2.6#编译redis,默认安装在 /usr/local/bin
make && make install#运行redis
#	redis-cli:redis提供的命令行客户端
#	redis-server:redis同的服务端启动脚本
#	redis-sentinel:redis的哨兵启动脚本

3、启动

方式一:docker运行方式

#不带密码的运行方式
docker run --name redis -p 6379:6379 -d redis:6.2.6#带有密码的运行方式
docker run -itd --name redis -p 6379:6379 redis --requirepass "123456"

方式二:默认启动

redis-server

方式三:指定配置启动

1、修改配置文件 redis.conf

# 修改监听地址,0.0.0.0 表示可以被任意IP访问
bind 0.0.0.0# 守护进程,改为后台运行
daemonize yes#	设置密码
requirepass 123321

其它配置

# 监听端口
port 6379#工作目录,默认为当前目录,即运行redis-server的命令,日志,持久化等文件存储的目录
dir .# 数据库数量,设置为1,表示只是用1个库,默认有16个,编号是0-15
databases 1# 设置redis能够访问使用的最大内存
maxmemory 512mb# 日志文件,默认温控,不记录日志,可以指定日志文件名
logfile "redis.log"

2、启动配置文件

redis-server redis.conf

3、停止服务

# 使用redis-cli 执行 shutdown命令,由于设置了密码,需要通过 -u 指定密码进行操作授权
redis-cli  -u 123321 shutdown

方式四:开机自启

redis本身没有关于改机自启的功能,所以我们需要自己编写一个redis服务文件,以提供可用命令。

#创建并浏览redis.service
vi /etc/systemd/system/redis.service

redis.service

[Unit]
Description=redsi.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-usr.target

重载系统服务并设置自启

#重载系统服务
systemctl daemon-reload#启动redis
systemctl start redis#设置自启redis
systemctl enable redis

四、RedisClient

(一)客户端的类型

  • 命令行客户端
  • 图形化客户端
  • 编程客户端

(二)客户端的使用

1、命令行客户端

#如果不指定指令时,会直接进入redis控制台
redis-cli [options] [commonds]#常见options:
# -h 127.0.0.1 指定连接redis节点的ip
# -p 6379 指定连接redis接口的端口
# -a 123321 指定redis的访问密码#常见commonds
# ping:与redis做心跳测试,服务端正常返回pong状态

2、图形化客户端

图形化客户端是github的开源项目,Redis图形化客户端(源码)

由于该开源项目,并没有提供windows安装包,所以我们可以采用另外一个开源项目,是为这个开源项目提供Windows安装包,Redis图形化客户端(Windows)

(1)解压缩后,执行安装程序
(2)建立连接

在这里插入图片描述

相关文章:

Redis学习路线(1)—— Redis的安装

一、NoSQL SQL VS NoSQL 1、名称 SQL 主要是指关系数据库。NoSQL 主要是指非关系数据库。 2、存储结构 SQL 是结构化的数据库,以表格的形式存储数据。NoSQL 是非结构化的数据库,以Key-Value(Redis),JSON格式文档&…...

《MySQL 实战 45 讲》课程学习笔记(五)

数据库锁:全局锁、表锁和行锁 根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。 全局锁 全局锁就是对整个数据库实例加锁。 MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。当你需要…...

使用GADL对高程数据进行填洼

对于DEM数据中存在的洼地(sink)问题,可以使用GADL(Geospatial Data Abstraction Library)中的功能进行填洼操作。GADL是一个开源的GIS库,提供了许多对地理空间数据进行处理和分析的功能。 下面是使用GADL对…...

Spring Boot集成Swagger3.0,Knife4j导出文档

文章目录 Spring Boot集成Swagger3.0,Knife4j导出文档效果展示如何使用简要说明添加依赖添加配置类测试接口token配置位置 官网 说明情况 demo Spring Boot集成Swagger3.0,Knife4j导出文档 效果展示 如何使用 简要说明 Knife4j的前身是swagger-bootstrap-ui,前身swagger-boo…...

在.NET Framework中的连接字符串ConnectionStrings属性

在.NET Framework中&#xff0c;ConfigurationManager.ConnectionStrings属性是用来访问在Visual Studio IDE应用程序配置文件中配置的数据库连接字符串的。每个连接字符串在Visual Studio IDE配置文件中都以<add>元素的形式出现&#xff0c;该元素是<connectionStrin…...

kafka消费报错卡死:内存溢出OutOfMemoryError: Java heap space

文章目录 现象排查解决 现象 我们信控平台使用Java语言开发&#xff0c;Spring Cloud微服务架构&#xff0c;采用容器化部署&#xff0c;所有服务都部署在docker里面&#xff0c;使用docker-compose进行管理&#xff0c;使用portainer进行监控平台部署客户现场后&#xff0c;一…...

mac卸载与安装指定版本node

一、查看当前node.js版本 node -v 二、卸载当前node.js # 这里是卸载npm的 sudo npm uninstall npm -g# 这里是用来删除node创建的各种文件夹 sudo rm -rf /usr/local/lib/node sudo rm -rf /usr/local/lib/node_modules sudo rm -rf /var/db/receipts/org.nodejs.* sudo rm…...

机器学习深度学习——Dropout

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——权重衰减 &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文章对你们有所帮助 Drop…...

Intel和AMD 与 x86,ARM,MIPS有什么区别?

先说amd和intel amd和Intel这俩公司的渊源很深&#xff0c;早期时Intel先是自己搞了个x86架构&#xff0c;然后amd拿到了x86的授权也可以自己做x86了。接着intel向64位过渡的时候自己搞了个ia64&#xff08;x64架构&#xff09;但是因为和x86架构不兼容市场反应极差&#xff0…...

QT编写的串口助手

QT编写的串口助手 提前的知识 创建UI界面工程 找帮助文档 添加串口的宏...

C语言字符串的处理

用惯了Java C#这些语言&#xff0c;C语言中处理字符串还是有些不习惯的&#xff0c;所以这里写一下学习笔记。 C中字符串就是字符数组&#xff0c;是指向字符的指针&#xff0c;并且以空字符 \0 结尾&#xff0c;字符串作为函数的参数传递时一般使用指针类型&#xff0c;使用数…...

Docker 阿里云容器镜像服务

阿里云-容器镜像服务ACR 将本地/服务器docker image&#xff08;镜像&#xff09;推送到 阿里云容器镜像服务仓库 1. 在容器镜像服务ACR中创建个人实例 2. 进入个人实例 > 命名空间 创建命名空间 3. 进入个人实例 > 镜像仓库 创建镜像仓库 4. 进入镜像仓库 > 基本信…...

10kV 电力电缆交流耐压试验方案

...

【雕爷学编程】MicroPython动手做(20)——掌控板之三轴加速度6

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…...

链路 聚合

静态链路聚合&#xff1a;多数内网使用 。非物理直连建议与BFD联动 动态链路聚合LACP&#xff1a;是公有协议、内网、二层专线接口都能使用&#xff0c;现网多数使用此方式链路 聚合 PAGP&#xff1a;思科私有协议&#xff0c;只支持思科设备使&#xff0c;现网多数不用...

DPN(Dual Path Network)网络结构详解

论文&#xff1a;Dual Path Networks 论文链接&#xff1a;https://arxiv.org/abs/1707.01629 代码&#xff1a;https://github.com/cypw/DPNs MXNet框架下可训练模型的DPN代码&#xff1a;https://github.com/miraclewkf/DPN 我们知道ResNet&#xff0c;ResNeXt&#xff0c;D…...

【转载】Gin框架优雅退出

转载自&#xff1a; https://juejin.cn/post/7212786062224146487 Gin是一个非常流行的Web框架&#xff0c;经常被用于构建高性能、易于维护的Web应用。在领域驱动设计&#xff08;DDD&#xff09;和微服务等方面也有广泛应用。但是&#xff0c;像其他应用程序一样&#xff0c;…...

【数字IC设计】VCS仿真DesignWare IP

DesignWare介绍 DesignWare是SoC/ASIC设计者最钟爱的设计IP库和验证IP库。它包括一个独立于工艺的、经验证的、可综合的虚拟微架构的元件集合&#xff0c;包括逻辑、算术、存储和专用元件系列&#xff0c;超过140个模块。DesignWare和 Design Compiler的结合可以极大地改进综合…...

【*1900 图论+枚举思想】CF1328 E

Problem - E - Codeforces 题意&#xff1a; 思路&#xff1a; 注意到题目的性质&#xff1a;满足条件的路径个数是极少的&#xff0c;因为每个点离路径的距离<1 先考虑一条链&#xff0c;那么直接就选最深那个点作为端点即可 为什么&#xff0c;因为我们需要遍历所有点…...

AutoSAR系列讲解(实践篇)10.5-通信管理模块

目录 一、ComM 1、内部唤醒 2、外部唤醒 二、CanSM 三、状态关联 之前讲解了BswM和EcuM,详细讲解了BswM的配置,而大部分的配置都在BswM中做了,EcuM的配置就很简单了,基本上勾一勾就ok了。下面我们 来讲解模式管理还可能用到的通信模块 一、ComM ComM就像一个通信的总…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素&#xff0c;返回一个新的数组。 特点&#xff1a; 不修改原数组&#xff1a;slice 不会改变原数组&#xff0c;而是返回一个新的数组。提取数组的部分&#xff1a;slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...