首页 > 数据库 >数据库:Redis数据库

数据库:Redis数据库

时间:2024-04-01 23:35:06浏览次数:34  
标签:存储 Redis 数据库 redis 6379 数据

一、非关系型数据库

1.什么是非关系型数据库

非关系型数据库(Non-relational Database)又称NoSQL数据库是一种不同于传统关系型数据库管理系统(RDBMS)的数据存储解决方案。NoSQL这个术语最初意味着"Not Only SQL",强调的是这类数据库不完全依赖于SQL作为查询语言,并且通常不遵循关系模型的设计原则。

2.非关系型数据库的主要特征

非关系型数据库的主要特征包括:

数据模型多样性:

键值对存储(Key-Value Store):如Redis,通过键快速检索对应的值。

文档型数据库(Document-Oriented):如MongoDB,存储类似JSON或XML格式的文档集合,每个文档有自己的内部结构。

列族数据库(Column-Family):如Cassandra和HBase,以列簇为单位存储数据,适合大量数据的分布式存储和分析。

图形数据库(Graph Database):如Neo4J,关注实体间复杂关系的建模和查询。

灵活性:非关系型数据库允许更灵活的数据模型,能够轻松应对不断变化的应用需求,特别是在需要水平扩展时。

可扩展性与分布式计算:多数NoSQL数据库设计之初就考虑到横向扩展(Scale-out),可以在多个节点间分布数据和负载,从而处理海量数据和高并发请求。

弱一致性与CAP定理:很多NoSQL系统在设计上选择了可用性与分区容错性优先于强一致性,提供了最终一致性保证,而非传统RDBMS的ACID事务。

性能优化:某些非关系型数据库通过减少冗余、利用数据局部性以及针对特定场景优化数据结构和算法,提高了读写性能

3.关系型数据库和非关系型数据库区别

(1)数据存储方式不同

关系型和非关系型数据库的主要差异是数据存储的方式。关系型数据天然就是表格式的,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据。
与其相反,非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起。非关系型数据通常存储在数据集中,就像文档、键值对或者图结构。你的数据及其特性是选择数据存储和提取方式的首要影响因素。

(2)扩展方式不同

SQL和NoSQL数据库最大的差别可能是在扩展方式上,要支持日益增长的需求当然要扩展。
要支持更多并发量,SQL数据库是纵向扩展,也就是说提高处理能力,使用速度更快速的计算机,这样处理相同的数据集就更快了。因为数据存储在关系表中,操作的性能瓶颈可能涉及很多克服。虽然SQL数据库有很大扩展空间,但最终肯定会达到纵向扩展的上限个表,这都需要通过提高计算机性能来。
而NoSQL数据库是横向扩展的。因为非关系型数据存储天然就是分布式的,NoSQL数据库的扩展可以通过给资源池添加更多普通的数据库服务器(节点)来分担负载。
关系:纵向   比如说硬件中添加内存
非关:横向  天然分布式

(3)对事务性的支持不同

如果数据操作需要高事务性或者复杂数据查询需要控制执行计划,那么传统的SQL数据库从性能和稳定性方面考虑是你的最佳选择。SQL数据库支持对事务原子性细粒度控制,并且易于回滚事务。
虽然NoSQL数据库也可以使用事务操作,但稳定性方面没法和关系型数据库比较,所以它们真正闪亮的价值是在操作的扩展性和大数据量处理方面。
 

二、Redis数据库

1.什么是Redis数据库

Redis(远程字典服务器) 是一个开源的、使用 C 语言编写的 NoSQL 数据库即非关系数据库。

Redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Redis进程,在实际生产环境中,需要根据实际的需求来决定开启多少个Redis进程。若对高并发要求更高一些,可能会考虑在同一台服务器上开启多个进程。

Redis 6.0 中新增加的多线程也只是针对处理网络请求过程采用了多线性,而数据的读写命令,仍然是单线程处理的。

2、Redis命中机制和淘汰机制

命中机制:查询数据可以查询到,例如查询100条可以查询到20条即命中20条

淘汰机制:Redis缓存的是高热数据,若负载高于限制则淘汰一些最近没有访问的数据,即删除

2.数据模型与操作命令

Redis支持多种数据结构,这使得它能灵活地处理不同类型的数据和场景

键值对(Strings):简单的字符串类型,可以进行 GET、SET、INCR 等操作。

哈希表(Hashes):内含多个字段的键值对集合,例如存储用户信息。

列表(Lists):有序的字符串列表,可用于消息队列或者粉丝列表。

集合(Sets):无序且不允许重复元素的集合,常用于标签系统、好友列表等。

有序集合(Sorted Sets):具有排序特性的集合,每个成员有分数属性,可用于排行榜、带权重的索引等

3.Redis的优点

(1)具有极高的数据读写速度:数据读取的速度最高可达到 110000 次/s,数据写入速度最高可达到 81000 次/s。
(2)支持丰富的数据类型:支持 key-value、Strings、Lists、Hashes、Sets 及 Sorted Sets 等数据类型操作。
(3)支持数据的持久化:可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
(4)原子性:Redis 所有操作都是原子性的。
(5)支持数据备份:即 master-salve 模式的数据备份。

4.安装部署Redis

安装环境和Redis并解压

[root@localhost ~]#yum install -y gcc gcc-c++ make
#安装编译环境
[root@localhost opt]#ls /opt
redis-5.0.7.tar.gz
[root@localhost opt]#tar zxvf redis-5.0.7.tar.gz -C /opt/
#解压源码包
[root@localhost opt]#ls
redis-5.0.7  redis-5.0.7.tar.gz
[root@localhost opt]#cd  /opt/redis-5.0.7/
[root@localhost redis-5.0.7]#ls
00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-moduleapi  src
BUGS             deps     MANIFESTO  runtest          runtest-sentinel   tests
CONTRIBUTING     INSTALL  README.md  runtest-cluster  sentinel.conf      utils
#因为源码包中自带Makefile文件,所以不需要执行configure命令,直接执行make命令即可
[root@localhost redis-5.0.7]#make  -j 4
#进行编译
[root@localhost redis-5.0.7]#make PREFIX=/usr/local/redis  install
#安装redis

执行软件包提供的 install_server.sh 脚本文件设置 Redis 服务所需要的相关配置文件
首先切入/opt/redis-5.0.7/utils

然后脚本设置文件

Selected config:
Port           : 6379								#默认侦听端口为6379
Config file    : /etc/redis/6379.conf				#配置文件路径
Log file       : /var/log/redis_6379.log			#日志文件路径
Data dir       : /var/lib/redis/6379				#数据文件路径
Executable     : /usr/local/redis/bin/redis-server	#可执行文件路径
Cli Executable : /usr/local/bin/redis-cli			#客户端命令工具

设置软连接把redis的可执行程序文件放入路径环境变量的目录中便于系统识别

ln -s /usr/local/redis/bin/* /usr/local/bin/

如果需要修改redis服务的配置,部分配置还需要修改启动文件,例如端口号与PID文件路径

修改配置 /etc/redis/6379.conf 参数

修改配置 /etc/redis/6379.conf 参数
vim /etc/redis/6379.conf
bind 127.0.0.1 192.168.10.23				#70行,添加 监听的主机地址
port 6379									#93行,Redis默认的监听端口
daemonize yes								#137行,启用守护进程
pidfile /var/run/redis_6379.pid				#159行,指定 PID 文件
loglevel notice								#167行,日志级别
logfile /var/log/redis_6379.log				#172行,指定日志文件

查看端口发

总结

非关系数据
数据保存在缓存中,利于读取速度/查询数据
架构位置灵活
分布式、扩展性高

关系型数据库
安全性高(持久化)
事务处理能力强
任务控制强
可以做日志备份、 恢复容灾(能力更强一些

数据存储流向

非关系数据库

实列--》数据库--》集合---》键值对

非关系数据库不需要建数据库和集合(表)

关系型数据库

实列--》数据库--》表--》记录行---》存储到存储数据

redis 是一个关系型数据库 是一个开源基于内存上运行并且支持持久化,采用键值对(key-value),分布式集群架构

redis 有点 以及为什么这么快

  • 读写速度快
  • 支持丰富的数据类型
  • 支持数据的持久化
  • 操作方式原子性
  • 支持数据备份 master-slave

标签:存储,Redis,数据库,redis,6379,数据
From: https://blog.csdn.net/Miraitowa_xu/article/details/137247105

相关文章

  • 在Linux中,如何备份一个数据库?
    在Linux系统中,备份数据库是一项重要的维护任务,它可以确保在发生数据丢失或系统故障时能够恢复数据。根据所使用的数据库类型,备份方法会有所不同。以下是针对MySQL和PostgreSQL两种常见数据库的备份方法:1.MySQL数据库备份使用mysqldump工具:mysqldump是MySQL自带的一个命令行......
  • 使用node更加方便的操作mysql数据库的小工具
    这是一个自己封装的小工具,能够更加方便的操作数据库地址:工具首页git仓库地址功能还在继续开发当中…安装npminstallmysqinfo已经引入mysql工具包,无需在项目中再次引入mysql工具包导入constdb=require('mysqinfo')获取数据库对象//db.dbconnect('m......
  • Gbase8s数据库保姆级安装部署 一
       一、单机安装部署(一)安装之前的环境检查和准备(本次安装以官网最新版本3.5.1为例)1.检查环境和操作系统和安装包是否匹配gbase8s数据库一般以是以CPU架构为主要区分点,主要分为x86架构和arm架构两种:X86:Intel(centos)、兆芯和海光arm:鲲鹏和飞腾--检查操作系统--本次操......
  • 数据库—单行函数
    单行函数数组函数abs(x)返回x的绝对值ceil(x)返回大于或等于x的最小整数(向上取整)selectceil(-2.1)floor(x)向下取整selectfloor(-2.1)round(x)四舍五入selectround(3.49)字符串函数concat(s1,s2…sn)将字符串s1,s2等多个字符串合并为一个字......
  • 数据库系统概论-3.3数据定义-赵亮老师
    对数据库,仓库,表的形象比喻数据库->仓库模式->房间表->房间里面的物品模式的定义与删除定义模式CreateSchema<模式名>Authorization<用户名>;例如为用户wang定义一个学生-课程模式S-T。Createschema“S-T”AuthorizationWANG;说明若没有指定模式名,那......
  • Linux 安装 Redis (Docker)
    Linux安装Redisdockerpullredis由于容器内目录下没有redis.conf,导致/mydata/redis/conf/redis.conf认为是目录所以先创建配置文件mkdir-p/mydata/redis/conftouch/mydata/redis/conf/redis.confmkdir-p/mydata/redis/conf:创建一个目录/mydata/redis/conf,-p如......
  • 【NoSQL】SpringBoot+Redis简单使用
    【NoSQL】SpringBoot+Redis简单使用Redis是一款key-value存储结构的内存级NoSQL数据库;支持多种数据存储格式、支持持久化、支持集群windows下载:https://github.com/tporadowski/redis/releases<dependency><groupId>org.springframework.boot</groupId><artifactId......
  • 在.Net中操作redis
    在.Net中操作redis一、环境.Net7redis7.2.4二、所需类包StackExchange.Redis三、连接redis信息appsettings.json配置redis连接信息//Redis配置//"Redis":{//"Default":{//"Connection":"",//连接地址,端口号,密码//"Instance......
  • 数据库案例讲解
              ......
  • 地方废物回收机构管理的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。推荐阅读100套最新项目持续更新中.....2024年计算机毕业论文(设计)学生选题参考合集推荐收藏(包含Springboot、jsp、ssm+vue等技术项目合集)目录1.管理员功能效果图2.员工功能3.系统功能设计4.数据库E-R图设......