redis 非关系型数据库

redis 非关系型数据库,缓存型数据库。

关系型数据库和非关系型数据库的区别

关系型数据库是一个机构化的数据库,行和列。

列:声明对象

行:记录对象属性。

表与表之间是有关联,使用sql语句,来对指定的表,库,进行增删改查。

在创建表时,我们是设计好了表的结构。按照表结构来存储数据。数据与表结构不匹配,存储数据,会失败。

非关系型数据库:nosql not only sql

不需要定义库,也不需要定义表的结构,直接记录即可,而且每条记录都可以由不同的数据类型,字段(字段个数)

redis key:value 建值对形式存储。每个键之间没有之间关联。库与库之间相互独立。

区别:

1,数据的存储方式不同。

2,扩展方式,性能上的提升。关系型数据库靠的是提升本机的性能。非关系型数据库,可以横向扩展,加入节点服务器的方式提高性能。

3,对事务的支持性,mysql支持事务。(原子性,隔离性,一致性,持久性)

非关系型数据库也支持事务,但是稳定性和处理能力都不如关系型数据库。

非关系型数据库的主要场景:

1,操作的扩展性

2,海量数据处理

web2.0:交互。

纯动态网站的三高问题:

1,对数据库高并发读写的需求。

2,对海量数据高效存储与访问的需求。

3,对数据库的高可扩展性与高可用性的需求。

数据库缓存:

web页面缓存

cpu和硬盘之间缓存

常见的缓存需求场景

关系型数据库:

库----表---行,列----->存储数据

非关系型数据库:

库----集合----->保存键值对

他不需要是手动的创建库和集合。

redis:开源的,使用c语言编写的NQL数据库。

redis:基于内存运行,支持持久化(数据恢复)。采用的就是key-value(键值对)的存储形式。目前在分布式架构中,非常重要的一环。

redis服务器程序,是一个单进程模式,即只有一个主进程工作。也就是说在一台服务器上可以启动多个redis(端口号不能冲突)

redis的实际处理速度是完全依靠主进程的执行效率。

服务器只部署了一个redis进程,多个客户端访问,可能会导致redis的处理能力下降

如果部署了多个redis进程,虽然能提高redis的并发处理能力,但是会给服务器的cpu带来很大的压力。

一台服务器,一般部署3个redis进程。(根据情况来看,高并发,要部署多个。一般情况,单进程足够了)

redis的特点:

1,具有极高的读写速度,数据读取每秒110000次,写入数据每秒可执行81000的写入。

2,支持丰富的数据类型。

3,支持持久化。平常的数据都是保存在内存中,持久化可以写入到磁盘中,即可以保存到本地,也可以实现备份。

4,原子性,所有的操作都是原子性

5,支持主从模式---master-slave模式。

redis为什么这么快?应届 面试题

1,redis是纯内存结构,避免了磁盘I/O的耗时

2,核心模块是一个单进程,减少了线程切换和回收线程的时间。

3,I/O的多路复用机制。每一个执行线路,都可以同时读和写。高并发的效率大大提升。

特殊说明:redis的读写,仍然是单进程处理。

redis的服务控制命令:

/etc/init.d/redis_6379 status 状态

/etc/init.d/redis_6379 restart 重启

redis的命令工具:

redis-server:直接启动redis,只能启动

redis-benchmark:检测redis在本机的运行效率

redis-cil:命令行工具

redis-check-aof:检测AOF文件是否正常

redis-check-rdb:检测rdb文件是否正常

redis-benchmark:

-h:指定服务器的主机名 IP地址

-p:指定服务器的端口号

-c:指定并发连接数

-n:指定请求数。

redis-benchmark -h 192.168.176.80 -p 6379 -c 100 -n 10000 连接请求测试

redis-benchmark -h 192.168.176.80 -p 6379 -q -d 100 存取数据包的能力

redis-benchmark -t set,lpush -n 100000 -q 测试性能

一,如何进入redis

1,redis-cli -h 192.168.176.80 -p 6379 登录指定

-h 指定IP地址

-p 指定端口号

-a 指定登录密码

2,redis-cli 仅限于本地,远程登录还是要指定IP地址

二,redis的数据类型:

五大数据类型:

1,string(字符串):也是redis的最基本的类型,最大能存储512MB的数据,可以存储任何数据,数字,图片,文字,等等。

keys * :查看所有键值

*:表示所有

?:表示后面任意一位

创建键值: set test chen

读取键值:get test

修改键值 set test 10

判断键值对是否存在

exists test

1:存在 0:不存在

删除:del test

如何查看对应键值对的类型

type test

拼接字符串

没有,直接输入,显示当前长度

有,拼接字符串返回所有长度

append test1 hello

直接查看长度:strlen test1

incr test 递增1

decr test 递减1

只能改数字

incrby test 10 增加10

decrby test 10 减10

设置键值对生命周期:

setex test2 15 lo

ttl test2 查看键值对的生命周期

(integer)-2:结束

-1:表示永不过期

修改生命周期

expire test 30

创建多个:

mset key1 hello key2 world

打印多个:MGET key1 key2

2,list 数据类型

列表

创建列表

倒叙插入

lpush chen a b c 1 2 3

正序插入:

rpush cg 1 2 3 4

以下标查看:

lrange chen 0 -1

lindex chen 0 查看第0个

添加:

在前面添加:

lpushx cg 10

在后面添加

rpushx cg 5

删除:

lpop cg 删除第一个

rpop cg 删除最后一个

修改下标为3的元素

lset cg 3 shuai

在指定元素前后进行插入

linsert chenc before 3 10

linsert chenc after 3 11

三,hash类型:

hash类型用于存储对象,采用hash格式来进行操作。占用的磁盘空间少,而且一个hash可以存储4294967295个键值对。

创建:

hset cc tall yes

查看:

hget cc tal

添加新字段:

hset cc handsan yes

打印多个

hmget cc tall handsan

删除:

hdel cc tall

一次性设置多个字段

hmset chc tall yes age 21 ah 阿斯顿

中文会显示乱码

打印:

hmget chc tall age ah

直接查看全部键字段名,值

hgetall chc

分开查看

键字段名:hkeys chc

键值:hvals chc

删除:del cg

四,set 数据类型(无序集合)

元素类型也是string,元素是唯一的,不允许重复。多个集合类型可以进行并集。交集和差集运算。

set当中的元素类型是唯一的,可以跟踪一些唯一性数据。访问微博的用户名。只要把对应名称写入redis,set集合可以自动保存唯一性,保证下次访问

flushall 删除redis所有库

创建 (重复的不算)

sadd myset a a c

查看:

smembers myset

查看集合有没有指定元素

sismember myset c

1,存在 0,不存在

添加元素:

sadd myset b d e f

移除

随机移除:

srandmember myset

spop myset

指定移除:

srem myset a c

五,有序集合:元素类型也是string,元素唯一不能重复。

每个元素都会关联一个double(小数点)的分数(score,表示权重)可以通过权重的大小。进行排序。元素的权重可以重复

zset

在线积分的排行榜,可以实时更新用户的分数。zrange命令获取积分top10的用户。zrank命令通过username来获取用户的排行信息。

创建:

zadd myzset 1 one

添加:

zadd myzset 2 two 3 three

查看

加withscores 才显示权重

zrange myzset 0 -1 withscores

查看元素的排名:

zrank myzset one

查看集合有多少元素

zcard myzset

统计权重范围之内元素的个数:

zcount myzset 1 3

删除成员

zrem myzset three

查看元素权重:

zscore myzset two

set和hset 创建普通类型和hash类型,怎么选择?

一般情况下,如五特殊需求,普通的创建方式即可

对一个键进行多字段存储,节省内存,使用hash方式。

如何对key进行重命名

rename test chen

查看当前库中的键值对数:

dbsize

redis的库 库都是创建好的,16个库

数字排名:0-15

切换库

select 1

把当前库移到其他库中

move test 1

如何给库创建密码:

config set requirepass 123456

再次进入不加密码看不了数据

在内进入

auth 123456

在外进入加 -a 123456

redis-cli -h 192.168.176.71 -p 6379 -a 123456

如何情况库数据

flushdb:情空当前库(不要用,慎用)

flushall:清空全部库(不要用,慎用)

总结:

redis的特点:读写速度快。

数据类型:

1,string

2,list

3,hash 对一个键进行多字段存在要用hash节省空间

4,无序集合 set 元素不能重复,可以用来定义唯一值

5,有序集合 zset,元素不能重复,但是权重可以相同,用来排名

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

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

相关文章

【Linux】指令详解(二)

目录 1. 前言2. 重新认识指令2.1 指令的本质2.1.1 which2.1.2 alias 3. 常见指令3.1 whoami3.2 cd3.2.1 cd -3.2.2 cd ~ 3.3 touch3.3.1 文件创建时间 3.4 stat3.5 mkdir3.5.1 创建一个目录3.5.2 创建路径 3.6 tree3.7 rm3.7.1 rm -f3.7.2 rm -r 3.8 man3.9 cp3.10 mv 1. 前言 …

键盘快捷键工具Keyboard Maestro mac中文版介绍

Keyboard Maestro mac是一款键盘快捷键工具,它可以帮助用户通过自定义快捷键来快速完成各种操作,提高工作效率。Keyboard Maestro支持多种快捷键组合,包括单键、双键、三键、四键组合等,用户可以根据自己的习惯进行设置。此外&…

扩散模型实战(十):Stable Diffusion文本条件生成图像大模型

推荐阅读列表: 扩散模型实战(一):基本原理介绍 扩散模型实战(二):扩散模型的发展 扩散模型实战(三):扩散模型的应用 扩散模型实战(四&#xff…

【智能家居】5、主流程设计以及外设框架编写与测试

目录 一、主流程设计 1、工厂模式结构体定义 (1)指令工厂 inputCmd.h (2)外设工厂 controlDevices.h 二、外设框架编写 1、创建外设工厂对象bathroomLight 2、编写相关函数框架 3、将浴室灯相关操作插入外设工厂链表等待被调…

揭开副业的神秘面纱,上班摸鱼搞副业

副业没那么神秘,说白了就是销售。 卖文字、卖知识、卖技能、卖产品 ... 找对了渠道,有人愿意买单,就成了副业。 但是现在搞副业,坑多水深的,太多人栽跟头了,丢几百块都能算少的。 开始细说干货之前&#…

DCDC同步降压控制器SCT82A30\SCT82630

SCT82A30是一款100V电压模式控制同步降压控制器,具有线路前馈。40ns受控高压侧MOSFET的最小导通时间支持高转换比,实现从48V输入到低压轨的直接降压转换,降低了系统复杂性和解决方案成本。如果需要,在低至6V的输入电压下降期间&am…

生产环境_移动目标轨迹压缩应用和算法处理-Douglas-Peucker轨迹压缩算法

场景: 我目前设计到的场景是:即在地图应用中,对GPS轨迹数据进行压缩,减少数据传输和存储开销,因为轨迹点太频繁了,占用空间太大,运行节点太慢了,经过小组讨论需要上这个算法&#x…

NGINX缓存详解之服务端缓存

服务端缓存 proxy cache属于服务端缓存,主要实现 nginx 服务器对客户端数据请求的快速响应。 nginx 服务器在接收到被代理服务器的响应数据之后,一方面将数据传递给客户端,另一方面根据proxy cache的配置将这些数据缓存到本地硬盘上。 当客户端再次访问相同的数据时,nginx…

Virtual安装centos后,xshell连接centos 测试及遇到的坑

首先来一张官方的图--各种网络模式对应的连接状况: 1. 网络使用Host-Only模式动态分配IP,点确定后,centos 上运行 system restart network ,使用ifconfig查看新的ip,XShell可以直接连上centos, 但是由于使用…

美国费米实验室SQMS启动“量子车库”计划!30+顶尖机构积极参与

​11月6日,美国能源部费米国家加速器实验室(SQMS)正式启动了名为“量子车库”的全新旗舰量子研究设施。这个6,000平方英尺的实验室是由超导量子材料与系统中心负责设计和建造,旨在联合国内外的科学界、工业领域和初创企业,共同推动量子信息科…

裸片-PCBA

裸片 PCBA, 薄膜, 邦定-COB(chip on board)技术是指将裸芯片直接贴在PCB 板上,然后用铝线或金线进行电子连接的技术

【HarmonyOS】鸿蒙应用开发基础认证题目

系列文章目录 【HarmonyOS】鸿蒙应用开发基础认证题目; 文章目录 系列文章目录前言一、判断题二、单选题三、多选题总结 前言 随着鸿蒙系统的不断发展,前不久,华为宣布了重磅消息,HarmonyOS next 开发者版本会在明年(…

一颗苹果的温度,传递千里爱心

大凉山,全名四川省凉山彝族自治州,是我国最大的彝族聚居区,位于四川省西南部川滇交界处,州府西昌,距离成都500多公里。对于许多人来说,凉山这个地名有点陌生,但这里却居住着489万的彝族同胞&…

抖音如何推广引流?抖音推广引流的经验与工具分享

先来看实操成果,↑↑需要的同学可看我名字↖↖↖↖↖,或评论888无偿分享 一、了解抖音推广的价值 抖音作为一款热门的短视频应用,拥有庞大的用户群体和强大的传播力。通过抖音推广,企业或个人可以在短时间内获得大量的曝光和流量&…

『亚马逊云科技产品测评』活动征文|开发一个手机官网

『亚马逊云科技产品测评』活动征文|开发一个手机官网 授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 前言 …

服务器探针-serverstatus

{alert type"info"} 之前给大家介绍过一个简单的服务器监控。uptime-kuma 今天给各位带来一个酷炫的多服务器探针和多服务器监控。ServerStatus {/alert} 作者的开源项目地址如下:https://github.com/cppla/ServerStatus 作者的项目体验地址如下 https://…

网络参考模型与标准协议(一)

OSI参考模型 OSI 模型(Open Systems Interconnection Model),由国际化标准组织ISO (TheInternational Organization for Standardization )收录在ISO 7489标准中并于1984年发布。 OSI参考模型又被称为七层模型,由下至上依次为: 物理层: 在设备之间传输比…

Django(九、choices参数的使用、多对多表的三种创建方式、Ajax技术)

文章目录 一、choices参数choices参数的用法choices 参数用法总结 二、MVC与MTV模式1.MVC2.MTV 三、多对多的三种创建方式1.全自动创建2.纯手动创建半自动创建 四、Django与Ajax1.什么是Ajax常见的场景Ajax案例 一、choices参数 在没有用到choices参数之前,我们在D…

钩子函数-hook

钩子函数-hook hook 的作用 利用钩子函数可以在所有测试用例执行前做一些预置操作(如:准被测试数据、测试环境) 或者在测试结束后做一些后置操作(如:清理测试数据) 钩子函数在其它框架中也有&#xff0…

Vue框架学习笔记——指令语法:v-bind动态绑定属性、data的层级结构

文章目录 指令语法v-bind,增加标签内属性动态绑定方式 data的层级结构 指令语法 在标签中想让属性动态变化的时候,不能使用插值语法。 插值语法一般用于标签体中,当针对标签的里面的时候,例如标签属性,就可以使用指令…