非关系型数据库Redis(缓存型数据库)

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

关系型数据库

是一个结构化的数据库,记录方式是行(记录对象属性)和列(声明对象)

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

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

非关系型数据库(nosql   not only sql)

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

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

区别

1、数据存储方式不同

2、扩展方式不同。性能上的提升

关系型数据库靠的是提升本机性能

非关系型数据库可以横向扩展,加入节点服务器的方式提高性能

3、对事物支持性不同

MySQL:原子性、隔离性、一致性、持久性

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

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

1、操作的扩展

2、海量数据处理

web2.0核心特点:交互

纯动态网站的三高问题

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

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

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

常见的需求场景

1、数据库缓存

2、web页面缓存

3、CPU和硬盘之间缓存

关系型数据库

库 ---- 表 ---- 行、列 ---- 存储数据

非关系型数据库

库 ---- 集合 ---- 键值对

(不需要手动的创建库和集合)

redis 开源的、使用C语言编写的nosql数据库

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

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

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

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

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

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

redis特点

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

2、支持丰富的数据类型

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

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

5、支持主从模式 master-slave模式

面试:redis为什么这么快?

答:①redis是纯内存结构,避免了磁盘I/O的耗时; ②核心模块是一个单进程,减少了线程切换和收回线程的时间; ③I/O的多路复用机制(每个执行线路都可以同时执行读和写,大大提高并发的效率);

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

redis服务控制命令

/etc/init.d/redis_6379 +stop start restart status

redis的命令工具

redis-server  直接启动redis(只能启动)

redis-benchmark  检测redis再本机运行的效果

redis-cli  命令行工具

redis-check-aof  检测aof持久性是否正常

redis-check-rdb  检测rdb持久性是否正常

redis-benchmark -h  指定服务器的主机名、IP地址

redis-benchmark -p  指定服务器的端口号

redis-benchmark -c  指定并发连接数

redis-benchmark -n  指定请求数

如何进入redis

redis-cli -h 192.168.233.10 -p 6379  远程登录还是需要指定目标服务器的IP地址

redis-cli  仅限于本地

redis cli -h 192.168.233.10 -p 6379

-h 指定IP地址

-p 指定端口号

a 指定登录密码

redis的五大数据类型

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

2、list数据类型

列表当中的元素还是string类型

3、hash类型

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

4、set数据类型(无序集合)

元素类型也是string。列表里的元素是唯一的,不可以重复。多个集合之间可以进行并集、交集、差集的运算

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

5、有序集合

有序集合元素类型也是string,元素也不能重复,唯一。每个元素都会关联一个double(小数点)的分数(score,表示权重),可以通过权重的大小进行排序。元素的权重可以相同

zset

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

redis其他数据类型

位图(BitMap)

存储位数据,可以进行位级别的操作。

常用命令:SETBIT、GETBIT、BITCOUNT。

HyperLogLog

用于基数估算的数据结构。

常用命令:PFADD、PFCOUNT。

地理位置(GeoSpatial)

存储地理位置信息。

常用命令:GEOADD、GEODIST、GEORADIUS

ZCOUNT myzset 1 3  表示权重1<= scroe <=3

set和hset 创建普通类型和hash类型,一般情况下,如无特殊需求,普通的创建方式即可;对一个键进行多字段存储,节省内存,使用hash方式

DBSIZE  查看当前库键的数量

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

按照数字排名:0-15 互相独立

redis特点

1、读写速度快

2、数据类型(①string;②list;③hash对一个键进行多字段操作要用hash节省内存空间;④无序集合set:元素不能重复,可以用来定义唯一值;⑤有序集合zset:元素不能重复,但是权重可以相同,用来排名 )

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

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

相关文章

算法进阶——链表中环的入口节点

题目 给一个长度为n链表&#xff0c;若其中包含环&#xff0c;请找出该链表的环的入口结点&#xff0c;否则&#xff0c;返回null。 数据范围&#xff1a;1<结点值<10000 要求&#xff1a;空间复杂度O(1)&#xff0c;时间复杂度O(n) 例如&#xff0c;输入{1,2},{3,4,5…

11.16~11.19绘制图表,导入EXCEL中数据,进行拟合

这个错误通常是由于传递给curve_fit函数的数据类型不正确引起的。根据你提供的代码和错误信息&#xff0c;有几个可能的原因&#xff1a; 数据类型错误&#xff1a;请确保ce_data、lg_data和product_data是NumPy数组或类似的可迭代对象&#xff0c;且其元素的数据类型为浮点数。…

【Java SE】如何解读Java的继承和多态的特性?

前言 什么是继承和多态&#xff0c;为什么被称为Java三大特性&#xff0c;这两大特性为我们程序员带来了什么影响呢&#xff1f;是让复杂的代码简化了&#xff0c;还是为程序员写代码提供了多样性呢&#xff1f;那让我们一起来揭开这层神秘的面纱吧&#xff01; 1.继承 1.1为…

微创机器人:CRM撬动售后服务数字化升级

一方面&#xff0c;我国医疗器械行业起步较晚&#xff0c;更注重产品的销售和业务的拓展&#xff0c;企业售后服务整体比较滞后。 另一方面&#xff0c;医疗器械售后服务环节数字化程度不足&#xff0c;一些企业仍通过传统的线下手段管理售后服务&#xff0c;进行数字化尝试的…

酷柚易汛ERP - 客户等级操作指南

1、应用场景 客户等级用于整个系统对客户进行分级&#xff0c;同一商品可设定多个不同价格&#xff0c;当然这个价格是以客户等级进行区分。 注意&#xff1a;系统中默认设定五种等级&#xff0c;默认等级是不允许删除和禁用&#xff0c;新增的客户等级是可以删除和禁用。

Mybatis和MybatisPlus:数据库操作工具的对比

目录 什么是mybatis 什么是mybatisplus MyBatis-Plus&#xff1a;为简化数据库操作而生的强大工具 一、MyBatis-Plus的背景和概述 二、MyBatis-Plus的主要特点 三、如何使用MyBatis-Plus mybatis-Plus的优势 什么是Hibernate Hibernate&#xff1a;Java开发者的数据持久…

mysql主从搭建(docker)

一、主从概述 MySQL主从又叫Replication、AB复制。简单讲就是A与B两台机器做主从后&#xff0c;在A上写数据&#xff0c;另外一台B也会跟着写数据&#xff0c;实现数据实时同步。有这样几个关键点&#xff1a; 1&#xff09;MySQL主从是基于binlog&#xff0c;主上需开启binl…

【微信小程序】分包

分包 分包的基础概念1、什么是分包2、分包的好处3、分包后项目的构成4、分包的加载规则5、分包的体积限制 分包的基本用法1、配置方法2、打包原则 独立分包1、什么是独立分包2、独立分包和普通分包的区别3、独立分包的应用场景4、独立分包的配置方法5、引用原则 分包的基础概念…

SpringBoot的启动流程

一、SpringBoot是什么&#xff1f; springboot是依赖于spring的&#xff0c;比起spring&#xff0c;除了拥有spring的全部功能以外&#xff0c;springboot无需繁琐的xml配置&#xff0c;这取决于它自身强大的自动装配功能&#xff1b;并且自身已嵌入Tomcat、Jetty等web容器&am…

同城跑腿服务预约小程序的作用是什么

随着生活质量逐渐提升&#xff0c;围绕人们生活的行业或产品非常多&#xff0c;同时互联网赋能下&#xff0c;也出现了很多便捷人们日常消费的场景&#xff0c;如外卖服务、快递服务等。 跑腿仅依赖微信私聊及电话预约是很低效且容易出错及造成极大工作压力的&#xff0c;同时…

京东API接口获取京东平台商品详情数据,SKU,价格参数及其返回值说明

做过淘客开发的一定接触过淘宝API开发。 而做京东联盟软件自然离不开京东联盟API。 京东联盟API目前上线的有很多。 参数说明 通用参数说明 url说明 https://api-gw.onebound.cn/平台/API类型/ 平台&#xff1a;淘宝&#xff0c;京东等&#xff0c; API类型:[item_search,ite…

华为笔记本MateBook D 14 2021款锐龙版R7集显非触屏(NbM-WFP9)原装出厂Windows10-20H2系统

链接&#xff1a;https://pan.baidu.com/s/13Kyy95GME-asli4woNN_ww?pwdbqa8 提取码&#xff1a;bqa8 HUAWEI华为MateBookD14原厂Win10系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、华为电脑管家等预装程序