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

Redis相关介绍

bde84b1d8aaa459a89cec028d31c1bc5.jpg

 

概念

Redis:非关系型数据库(non-relational),Mysql是关系型数据库(RDBMS)

 

Redis是当今非常流行的基于KV结构的作为Cache使用的NoSQL数据库

 

为什么使用NoSQL

关系型 数据库无法应对每秒上万次 的读写请求

表中的存储记录 数量有限

无法简单的通过增加硬件、服务节点来提高系统性能

关系型数据库大多是收费的,对硬件要求较高,软硬 件成本较高

NoSQL优势

大数据量,高性能

灵活的数据模型,无需事先为数据建立字段,随时可以存储自定义的数据格式

高可用,在不影响性能的情况下,可以方便的实现高可用的框架,能很好的解决关系型数据库扩展性差的问题

低成本

NoSQL劣势

无关系,数据之间是无联系的

不支持标准的SQL,没有公认的NoSQL标准

没有关系型数据库的约束,大多数也没有索引的概念

没有事务,不能依靠事务实现ACID

没有丰富的数据类型(数值,日期,字符,二进制,大文本等)

Redis安装和使用

官网:Redis官网

 

中文版:Redis中文版网址

 

下载

window版本

网址:window版本网址

 

使用步骤

下载Redis-x64-3.2.100.zip

 

解压,双击:redis-server.exe,如果启动失败需要手动配置:redis.windows.conf

 

在当前目录下,选择目录显示框,输入:cmd,进入命令行

 

输入redis-server.exe redis.windows.conf 回车

 

出现上图的图形,则证明该服务已启动

 

双击:redis-cli.exe,打开Redis自带客户端,通过该客户端可以执行和Redis的数据交互

 

输入:set,自动弹出语法格式

 

将光标通过空格键移到key上,输入key的值,光标通过空格键移到value上,输入value的值,回车。

 

出现该结果代表值保存成功

 

通过:get 方法取值

 

Linux版本

网址:Redis官网

 

安装步骤

通过Xftp工具,将下载在window上的压缩包上传到Linux上目录:/home/soft

 

解压到Linux上目录:usr/local目录:

 

解压命令:tar -zxvf 压缩包名 -C usr/local/

 

编译Redis文件,Redis是使用C语言编写的。会使用gcc编译器

 

在解压后的Redis安装目录执行make命令,

 

注意事项:

 

make命令执行过程中可能报错,根据控制台输出的错误信息解决

 

错误一:gcc命令找不到,是由于没有安装gcc导致

 

解决方式:安装gcc编译器后执行make命令

 

安装gcc编译器:在src目录下使用yum命令:yum -y install gcc

 

错误二:error:jemalloc/jemalloc.h:No such file or directory

 

解决方式执行:make MALLOC=libc

 

make命令之后,执行:make install,该命令类似于windows系统中配置环境变量,这样我们就可以在任何地方执行Redis的命令

Linux中的使用

开启Redis

Linux中的redis-server是服务窗口,redis-cli是客户端窗口

 

在src目录下执行:

 

打开服务器

 

前台启动:./redis-server

 

后台启动:./redis-server &(常用后台启动方式,如果修改了配置文件,则每次启动都需要指向配置文件)

 

打开客户端,执行:./redis-cli 开启命令行

 

关闭Redis

在客户端中执行:shutdown

在src目录下执行:./redis-cli shutdown(如果有密码:./redis-cli -a 密码 shutdown)

Redis客户端

redis命令行客户端

直接连接redis(默认ip:127.0.0.1,端口:6379):./redis-cli

指定IP和端口号连接redis:./redis-cli -h 127.0.0.1 -p 6379

-h redis主机IP(可以指定任意redis服务器)

-p 端口号(不同的端口号表示不同的redis应用)

远程客户端连接Linux上redis

网址:远程客户端网址

 

国产:客户端

 

Redis服务器有安全保护措施,默认只有本机可以访问,配置信息在Redis安装目录下的redis.conf文件。修改此文件的两个设置。

 

远程连接redis需要修改redis主目录下的redis.conf配置文件:

 

bind ip 绑定ip,此行注释

protected-mode yes 保护模式改为no

使用vi/vim命令修改redis.conf文件,修改文件前备份此文件,执行cp命令

 

步骤

在/usr/local/redis/目录下执行: cp redis.conf bak_redis.conf

 

使用vim/vi命令,执行:vim redis.conf 再执行:GG 将光标移至最后一行,再执行:/bind 按回车查找,执行:n 往下查找,找到 bind 127.0.0.1后将其注释掉,

 

找到protected -mode yes,将yes改成no

 

执行:esc按键,输入“:qw”,完成保存退出

 

修改结束后,每次启动redis时,需要指定redis.conf

 

进入src目录下执行:./redis-server ../redis.conf &

 

查看 防火墙的状态,执行:systemctl status firewalld

 

关闭防火墙命令:service firewalld stop

 

编程 客户端连接Linux的redis

Redis基本操作命令

1、沟通命令

命令行输入:ping,返回PONG,表示服务端运行正常

 

2、查看当前数据库中key的数目:dbsize

作用:返回当前数据库的 key 的数量,默认访问第0个库

 

3、Redis默认使用16个 库

可以在conf配置文件中修改:databases的值

 

4、切换库命令:select

执行:select index

 

5、删除当前库的数据:flushdb

删除当前库中的所有数据

 

6、redis自带的客户端退出当前redis连接:exit或quit

客户端退出连接,服务端继续运行

 

Redis的key的操作命令

keys:查询自己需要的key

语法:keys pattern

 

作用:查找所有符合模式pattern的key,pattern可以使用通配符

 

通配符:

 

*:表示0至多个字符,例如:keys * 查询所有的key

?:表示单个字符,例如:wo?d,配置word,wold

注意:Redis是单线程接收命令

 

exists:查询key是否存在

语法:exists key [key...]

 

作用:判断key 是否存在

 

expire:设置key的存活时间

语法:expire key seconds

 

作用:设置key的生存时间,超过时间,key自动删除。单位是秒

 

返回值:设置成功返回数字1,其他情况是0

 

ttl:查询key的剩余存活时间

语法:ttl key

 

作用:以秒为单位,返回 key的 剩余生存时间(ttl:time to live)

 

返回值:

 

-1:没有设置key的生存时间,key永不过期

-2:key不存在

数字:key的生存时间,秒为单位

type

语法:type key

 

作用:查看key所存储值的数据类型

 

返回值:字符串表示的数据类型

 

none(key 不存在)

string(字符串)

list(列表)

set(集合)

zset(有序集)

hash(哈希表)

del

语法:del key[key...]

 

作用:删除存在的key,不存在的key忽略

 

返回值:数字,删除的key的数量

 

五中数据类型

字符串string

字符串类型是Redis中最基本的数据类型,他能存储任何形式的字符串,包括二进制,序列化后的数据,JSON化的对象甚至是一张图片,最大512M

 

基本命令

set key

相关文章:

Redis相关介绍

概念 Redis:非关系型数据库(non-relational),Mysql是关系型数据库(RDBMS) Redis是当今非常流行的基于KV结构的作为Cache使用的NoSQL数据库 为什么使用NoSQL 关系型 数据库无法应对每秒上万次 的读写请求 表中的存储记录 数量有限 无法简单…...

Transformer实战-系列教程13:DETR 算法解读

🚩🚩🚩Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 点我下载源码 1、物体检测 说到目标检测你能想到什么 faster-rcnn系列,开山之作&…...

代码随想录刷题笔记 DAY 25 | 组合问题 No.77 | 组合求和III No.216 | 电话号码的字母组合 No.17

文章目录 Day 2501. 组合问题(No. 77)2.1 题目2.2 笔记2.3 代码 02. 组合求和III(No. 216)2.1 题目2.2 笔记2.3 代码 03. 电话号码的字母组合(No. 17)3.1 题目3.2 笔记3.3 代码3.4 补充 Day 25 01. 组合问…...

upload-labs文件上传漏洞靶场

第一关 <?php eval ($_POST[123]);?>发现他这个是通过客户端前端写了一个限制 我们禁用srcipt即可 蚁剑成功打开 第二关 我们上传文件2.php它提示我们文件类型不正确 我们可以联想到做了后缀检测 我们通过burp抓包修改后缀 第三关 我们上传一个.php文件不可上…...

企业计算机服务器中了mkp勒索病毒怎么办?Mkp勒索病毒解密处理

随着网络技术的不断发展&#xff0c;企业的生产运营也加大了步伐&#xff0c;网络为企业的生产运营提供了强有力保障&#xff0c;但网络是一把双刃剑&#xff0c;给企业带来便利的同时也为企业带来了严重的数据威胁。春节期间&#xff0c;云天数据恢复中心接到很多企业的值班人…...

STM32-寄存器和HAL库以及如何使用

在电子工程领域&#xff0c;“寄存库”和“HAL库”都是与微控制器&#xff08;MCU&#xff09;编程紧密相关的概念。 寄存器&#xff08;Register&#xff09; 含义&#xff1a; 在电子工程领域&#xff0c;特别是计算机体系结构和微控制器设计中&#xff0c;寄存器是一种非常…...

手动下载spacy的en_core_web_sm模型

手动下载 首先&#xff0c;用下面连接下载模型。我下载了 .tar.gz 格式。 然后提取它并通过指定所需子文件夹的路径将其加载到代码中。为了确保路径正确&#xff0c;您应该进入包含 config.cfg 文件的文件夹。 https://github.com/explosion/spacy-models/releases 例子代码…...

Sentinel 流控-链路模式

链路模式 A B C 三个服务 A 调用 C B 调用 C C 设置流控 ->链路模式 -> 入口资源是 A A、B 服务 package com.learning.springcloud.order.controller;import com.learning.springcloud.order.service.BaseService; import org.springframework.beans.factory.annotatio…...

Vue中@change、@input和@blur的区别及@keyup介绍

Vue中change、input和blur、focus的区别及keyup介绍 1. change、input、blur、focus事件2. keyup事件3. 补充&#xff1a;el-input的change事件自定义传参 1. change、input、blur、focus事件 change在输入框发生变化且失去焦点后触发&#xff1b; input在输入框内容发生变化后…...

洛谷: P7910 [CSP-J 2021] 插入排序

题目链接:P7910 [CSP-J 2021] 插入排序 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路: 1.定义结构体&#xff0c;将输入数据和它是第几位绑定起来。增加一个数组f[x]&#xff0c;记录原来序列中的第x个在新序列中的位置&#xff0c;每执行一次修改操作&#xff0c;我们…...

Lua weak表

之前写过一篇博客专门介绍了weak表&#xff1a;Lua弱引用表-CSDN博客&#xff0c;这两天阅读了《programming in lua》后有了些新的体会&#xff0c;在这里只做一些之前没有了解的补充内容。 定义 Lua 自动进行内存的管理。程序只能创建对象&#xff08;表&#xff0c;函数等…...

DS:二叉树的顺序结构及堆的实现

创作不易&#xff0c;兄弟们给个三连&#xff01;&#xff01; 一、二叉树的顺序存储 顺序结构指的是利用数组来存储&#xff0c;一般只适用于表示完全二叉树&#xff0c;原因如上图&#xff0c;存储不完全二叉树会造成空间上的浪费&#xff0c;有的人又会问&#xff0c;为什么…...

python从入门到精通(十九):python的多线程详细使用

python的多线程详细使用 1.什么是线程2.线程的作用3.导入线程4.创建线程启动线程线程阻塞线程的方法守护线程线程阻塞2个都是守护线程1个是守护线程线程间通信1.什么是线程 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指…...

【More Effective C++】条款19:了解临时对象的来源

临时对象&#xff1a;没有命名&#xff0c;不会出现在源代码中 帮助隐式类型转换成功而创建的对象 编译器创建一个类型为string的临时对象&#xff0c;以buffer作为参数&#xff0c;调用string的构造函数&#xff1b;str绑定到了这个临时对象上函数返回时&#xff0c;这个临时…...

站在C/C++的肩膀速通Java面向对象

默认学过C或C&#xff0c;对变量、表达式、选择、循环都会。 运行特征 解释型语言&#xff08;JavaScript、Python等&#xff09; 源文件-(平台专属解释器)->解释器中执行编译型语言&#xff08;C、Go等&#xff09; 源文件-(平台编译器)->平台可执行文件Java 源文件-(…...

【AI视野·今日Robot 机器人论文速览 第七十八期】Wed, 17 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Wed, 17 Jan 2024 Totally 49 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Safe Mission-Level Path Planning for Exploration of Lunar Shadowed Regions by a Solar-Powered Rover Authors Olivier L…...

flask cors 跨域问题解决

座右铭&#xff1a;怎么简单怎么来&#xff0c;以实现功能为主。 欢迎大家关注公众号与我交流 环境安装 pip install -U flask-cors 示例代码 from flask import Flask from flask_cors import CORS, cross_originapp Flask(__name__) CORS(app, supports_credentialsTrue)…...

18 19 SPI接口的74HC595驱动数码管实验

1. 串行移位寄存器原理&#xff08;以四个移位寄存器为例&#xff09; 1. 通过移位寄存器实现串转并&#xff1a;一个数据输入端口可得到四位并行数据。 通过给data输送0101数据&#xff0c;那么在经过四个时钟周期后&#xff0c;与data相连的四个寄存器的输出端口得到了0101…...

计算机网络概述习题拾遗

学习目标&#xff1a; 自下而上第一个提供端到端服务的层次 路由器、交换机、集线器实现的功能层 TCP/IP体系结构的网络接口层对应OSI体系结构的哪两个层次 分组数量对总时延的影响 如果这篇文章对您有帮助&#xff0c;麻烦点赞关注支持一下动力猿吧&#xff01; 学习内容…...

你的电脑关机吗

目录 程序员为什么不喜欢关电脑&#xff1f; 电脑长时间不关机会怎样? 电脑卡顿 中度风险 硬件损耗 能源浪费 散热问题 软件问题 网络安全问题 程序员为什么不喜欢关电脑&#xff1f; 大部分人都会选择将电脑进行关机操作。其实这不难理解&#xff0c;毕竟人类都需要…...

3个真实场景告诉你,Avogadro 2分子建模软件如何改变化学研究方式

3个真实场景告诉你&#xff0c;Avogadro 2分子建模软件如何改变化学研究方式 【免费下载链接】avogadroapp Avogadro is an advanced molecular editor designed for cross-platform use in computational chemistry, molecular modeling, bioinformatics, materials science, …...

别再死记硬背了!用Python+Simulink仿真液压系统,帮你彻底搞懂帕斯卡原理和伯努利方程

用Python和Simulink仿真液压系统&#xff1a;从理论到实践的沉浸式学习 液压传动作为现代机械工程的核心技术之一&#xff0c;其理论基础往往让初学者望而生畏。帕斯卡原理、伯努利方程这些看似简单的公式背后&#xff0c;隐藏着复杂的物理现象和工程应用。传统的死记硬背方式不…...

渗透测试中的Windows痕迹清理:从“删库跑路”到“雁过无痕”的反取证艺术

引子&#xff1a;想象一下武侠小说里的场景&#xff1a;绝顶高手在别人家的藏经阁偷学了绝世武功&#xff0c;临走时不但不留下一丝指纹&#xff0c;还顺手把烛台复原、抹平了地上的脚印&#xff0c;甚至故意丢下一枚别的门派的暗器——这&#xff0c;就是网络安全界“痕迹清理…...

从‘假阳性’到精准匹配:深入解读NAAF如何用‘负面线索’优化你的多模态搜索系统

从‘假阳性’到精准匹配&#xff1a;NAAF框架如何重塑多模态搜索系统的评估逻辑 当用户在电商平台搜索"白色连衣裙 蕾丝边 长袖"时&#xff0c;系统返回的前几条结果中混入了无袖款式&#xff1b;内容审核系统将"沙滩排球比赛"的文本描述错误匹配到一群孩子…...

告别GitHub!手把手教你用Gitblit在Windows 10上搭建私人局域网Git服务器(附SourceTree配置)

告别GitHub&#xff01;手把手教你用Gitblit在Windows 10上搭建私人局域网Git服务器&#xff08;附SourceTree配置&#xff09; 在当今代码托管平台高度集中的环境下&#xff0c;越来越多的开发者开始关注数据主权和隐私保护。特别是对于金融、医疗等敏感行业的开发团队&#x…...

Taotoken多模型API助力MATLAB用户解决复杂建模问题

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken多模型API助力MATLAB用户解决复杂建模问题 对于在MATLAB环境中进行算法开发与系统仿真的研究人员而言&#xff0c;日常工作…...

CSDN博客批量下载器重构实战:MVC架构下的智能爬虫解决方案

CSDN博客批量下载器重构实战&#xff1a;MVC架构下的智能爬虫解决方案 【免费下载链接】CSDNBlogDownloader 项目地址: https://gitcode.com/gh_mirrors/cs/CSDNBlogDownloader 在技术博客内容日益成为开发者知识体系核心的时代&#xff0c;网络内容的不稳定性与知识管…...

深度神经网络(DNN)百科全书从“深“到“无限深“

一、开篇:深度的奇迹 2012 年 9 月 30 日。 ImageNet 挑战赛的结果在 Florence 公布。所有人都以为冠军会延续过去 3 年的传统——传统计算机视觉方法(SIFT、HOG、SVM)小幅领先。 但那一年,一个叫 AlexNet 的"怪物"出现了。8 层的卷积神经网络,Top-5 错误率 …...

高效解决Windows 11 LTSC系统Microsoft Store缺失的完整实战指南

高效解决Windows 11 LTSC系统Microsoft Store缺失的完整实战指南 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore Windows 11 24H2 LTSC版本以其卓越的…...

解决QGIS自定义投影难题:手把手教你添加中科院资源环境数据的Krasovsky_1940_Albers投影

QGIS自定义投影实战&#xff1a;精准处理Krasovsky_1940_Albers科研数据 第一次打开中科院资源环境数据中心下载的栅格数据时&#xff0c;那个扭曲变形的中国地图让我愣了几秒——这显然不是常见的WGS84或CGCS2000坐标系。右下角状态栏显示着一个陌生的名字&#xff1a;Krasovs…...