Redis相关介绍

news2025/1/20 16:22:36

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

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

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

相关文章

9.【CPP】List (迭代器的模拟实现||list迭代器失效||list的模拟实现)

介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与forward_…

QGIS打开shp地图

地图shp文件如何打开查看 提示 open sans字体没有安装 字体天下-提供各类字体的免费下载和在线预览服务 这里搜索open sans下载 但是 还是不显示 省份名称。

数据结构——lesson2线性表和顺序表

目录 前言 一、顺序表是什么? 1. 静态顺序表:使用定长数组存储元素 2. 动态顺序表:使用动态开辟的数组存储。 二、接口实现 1.动态顺序表存储 2.基本增删查改接口 (1)初始化顺序表 (2)顺序表摧毁 (3)检查空间 (4)顺序表打印 (5)顺…

【JVM篇】什么是jvm

文章目录 🍔什么是Java虚拟机🛸Java虚拟机有什么用🌹Java虚拟机的功能🎈Java虚拟机的组成 🍔什么是Java虚拟机 JVM指的是Java虚拟机,本质上是一个运行在计算机上的程序,可以运行 Java字节码文件…

pytorch花式索引提取topk的张量

文章目录 pytorch花式索引提取topk的张量问题设定代码实现索引方法gather方法验证 补充知识expand方法gather方法randint pytorch花式索引提取topk的张量 问题设定 或者说,有一个(bs, dim, L)的大张量,索引的index形状为(bs, X),想得到一个(…

位运算+leetcode ( 2 )

题一:只出现一次的数字(1) 1.链接 136. 只出现一次的数字 - 力扣(LeetCode) 2.思想 借用位运算中异或操作符的特点,a^a0,0^aa先定义一个sum0就用一个循环来遍历这个数组,每次都进行…

lv15 平台总线框架及案例 2

一、总线、设备、驱动 硬编码式的驱动开发带来的问题: 垃圾代码太多 结构不清晰 一些统一设备功能难以支持 开发效率低下 1.1 初期解决思路:设备和驱动分离 struct device来表示一个具体设备,主要提供具体设备相关的资源(如…

小游戏和GUI编程(7) | SimpleNN 界面源码解析

小游戏和GUI编程(7) | SimpleNN 界面源码解析 0. 简介 SimpleNN 是 AdamYuan 在高中一年级时用 1 天时间写出来的简易 CNN, 使用 SFML 做 UI, 用于交互式输入手写数字,这个数字被训练好的 CNN 网络执行推理得到识别结果, 它的运行效果如下: 这一篇我们…

C语言——oj刷题——调整数组使奇数全部都位于偶数前面

题目: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。 一、实现方法: 当我们需要对一个整数数组进行调整,使得奇数位于数…

Solidworks:挑战新问题,不知道如何画出斜视图?

如果图形都是基于XYZ三个方向构造,没什么难度。如果有其他倾斜方向的,问题就难了。今天试了一下,看看我的3D模型。 出图纸的时候,不知道如何才能投影出斜视图,一边准确描述下面的那个小局部孔位。 补充:查了…

C++ Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(3) 保存表格数据

对上两篇篇的工作C Qt框架开发| 基于Qt框架开发实时成绩显示排序系统(1)-CSDN博客和C Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(2)折线图显示-CSDN博客继续优化,增加一个保存按钮,用于保存成绩数据…

八、克服冲动(Overcoming Impulses)

6.Overcoming Impulses 六、克服冲动 The skill of focus basically boils down to a tension between two different forces: the desire to work and the desire to quit. 专注的技巧基本上可以归结为两种力量之间的张力:工作的欲望和停止工作的欲望。 What makes…

猫头虎分享已解决Bug || Uncaught SyntaxError: Unexpected token

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

解锁未来:探秘Zxing二维码技术的神奇世界

解锁未来:探秘Zxing二维码技术的神奇世界 1. 引言 在当今数字化和智能化的社会中,二维码技术已经成为人们生活中不可或缺的一部分。从商品购物、支付结算到健康码、门票核销,二维码无处不在,极大地方便了人们的生活和工作。而Zx…

Vue3快速上手(三)Composition组合式API及setup用法

一、Vue2的API风格 Vue2的API风格是Options API,也叫配置式API。一个功能的数据&#xff0c;交互&#xff0c;计算&#xff0c;监听等都是分别配置在data, methods&#xff0c;computed, watch等模块里的。如下&#xff1a; <template><div class"person"…

[C++]17:二叉树进阶

二叉树进阶 一.二叉搜索树&#xff1a;1.二叉搜索树的概念&#xff1a;2.二叉搜索树的实现---循环版本&#xff1a;1.二叉搜索树的基本结构&#xff1a;2.查找&#xff1a;3.插入&#xff1a;4.中序遍历&#xff1a;5.删除&#xff1a; 3.二叉搜索树的实现---递归版本&#xff…

用代码视角揭秘刘谦扑克牌魔术

近日&#xff0c;刘谦回归春晚引发了热烈的讨论&#xff0c;尤其是刘谦表演的魔术《守岁共此时》中扑克牌登上了热搜。 如果要评选龙年春晚最好笑的节目&#xff0c;还得是尼格买提现场表演的翻车~ 除了台下的观众&#xff0c;相信很多电视机前的小伙伴也纷纷拿起扑克牌开始尝…

js中正则表达式的详解(应用场景)

文章目录 一、是什么二、匹配规则正则表达式标记贪婪模式懒惰模式分组 三、匹配方法str.match(regexp)str.matchAll(regexp)str.search(regexp)str.replace(regexp)str.split(regexp)regexp.exec(str)regexp.test(str) 四、应用场景参考文献 一、是什么 正则表达式是一种用来匹…

零售连锁门店管理软件有哪些好用?

在当今的零售行业中&#xff0c;随着连锁经营模式的普及和发展&#xff0c;对于高效、便捷的门店管理需求日益增加。一款好用的零售连锁门店管理软件&#xff0c;能够为商家提供全方位的解决方案&#xff0c;助力企业实现信息化管理&#xff0c;提升运营效率。那么&#xff0c;…

汉服租赁网站:Java技术的文化应用

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…