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

2024 RedisAnd Mysql基础与进阶操作系列(13)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]

REDIS系列一开篇

目录

REDIS系列一开篇

1.NoSQL简介

1.1 什么是NoSQL?

1.2 我们为什么使用NoSQL ? 

 

1.3 RDBMS vs NoSQL

1.4 NoSQL 产品

 NoSQL产品的显著特点:

​编辑 1.5 NoSQL 数据库分类

 1.6NoSQL 存储类型及特点

2.Redis

2.1 Redis简介

 2.2 Redis作用

2.3 Redis下载网站

2.4Redis使用群体

2.5Redis的部署场景

1.应用程序直接访问 Redis 数据库

​编辑

2. 应用程序直接访问 Redis,只有当 Redis 访问失败时才访问 MySQL​编辑

2.6Redis与其他数据库和软件的对比【了解一下;后续详解】

3. Redis安装【基于CentOS 7.3 x86-64 系统安装 】

 S1:rpm包安装

配置epel的yum源

在线yum安装

安装最新版本使用remi

启动服务

验证测试

登录

S2:源码安装

下载

解压

安装

启动

S3:Redis命令行客户端

发送命令

命令返回值

S4:源码配置服务脚本:


1.NoSQL简介

1.1 什么是NoSQL?

NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL用于超大规模数据的存储

(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展

1.2 我们为什么使用NoSQL ? 

  • 今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。
  • 用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。我们如果要对这些用户数据进行挖掘,那SQL数据库已经不适合这些应用了, NoSQL数据库的发展也却能很好的处理这些大的数据。
  • 随着互联网 web2.0 网站的兴起,传统的关系数据库在应付 web2.0 网站,特别是超大规模和高并发的SNS 类型的 web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库 则由于其本身的特点得到了非常迅速的发展。
  • NoSQL 数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。 

 

1.3 RDBMS vs NoSQL

RDBMS vs NoSQL

NoSQLRDBMS
代表着不仅仅是SQL高度组织化结构化数据
没有声明性查询语言结构化查询语言(SQL)
没有预定义的模式数据和关系都存储在单独的表中
键 - 值对存储,列存储,文档存储,图形数据库数据操纵语言,数据定义语言
最终一致性,而非ACID属性严格的一致性
非结构化和不可预知的数据基础事务
CAP定理
高性能,高可用性和可伸缩性

1.4 NoSQL 产品

常见的NoSQL产品:redis、memcache、mongdb等

 NoSQL产品的显著特点:

1、NoSQL产品一般不使用严格的表关系;

2、NoSQL产品的数据查询一般不用在sql上;

 

1.5 NoSQL 数据库分类

NoSQL 数据库分类

键值数据库列族数据库文档数据库图形数据库
应用内容缓存分布式数据存储与管理存储、索引并管理面向文档的数据或者类似的半结构化数据大量复杂、互连接、低结构化的图结构场合,如社交网络、推荐系统等
缺点无法存储结构化信息、条件查询效率较低缺乏统一的查询语言复杂性高、只能支持一定的数据规模
优点扩展性好、灵活性好、大量写操作时性能高查找速度快、可扩展性强、容易进行分布式扩展、复杂性低性能好、灵活性高、复杂性低、数据结构灵活活性高、支持复杂的图形算法、可用于构建复杂的关系图谱

 1.6NoSQL 存储类型及特点

NoSQL存储类型及特点

类型 部分代表 特点
列存 储Hbase Cassandra Hypertable顾名思义,是按列存储数据的。最大的特点是方便存储结构化 和半结构化数据,方便做数据压缩,对针对某一列或者某几列 的查询有非常大的IO优势。
文档 存储MongoDB CouchDB 文档存储一般用类似json的格式存储,存储的内容是文档型 的。这样也就有有机会对某些字段建立索引,实现关系数据库 的某些功能。
keyvalue 存储 Tokyo Cabinet / Tyrant Berkeley DB MemcacheDB Redis 可以通过key快速查询到其value。一般来说,存储不管value 的格式,照单全收。(Redis包含了其他功能)
图存储Neo4J FlockDB 图形关系的最佳存储。使用传统关系数据库来解决的话性能低 下,而且设计使用不方便。
对象 存储 db4o Versant 通过类似面向对象语言的语法操作数据库,通过对象的方式存 取数据。
xml 数据 库Berkeley DB XML BaseX 高效的存储XML数据,并支持XML的内部查询语法,比如 XQuery,Xpath。

2.Redis

2.1 Redis简介

(1)全称:mote ctionary erver(远程字典服务器)。是完全开源免费的,用C语言编写的, 遵守 BSD协议。是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。       

(2)Redis 与其他 key - value 缓存有以下三个特点           

  • Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储  
  • Redis支持数据的备份,即master-slave模式的数据备份

 2.2 Redis作用

Redis作用

内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面
模拟类似于HttpSession这种需要设定过期时间的功能
发布、订阅消息系统
定时器、计数器

2.3 Redis下载网站

  • Http://redis.io/
  • Http://www.redis.cn/

2.4Redis使用群体

目前全球最大的 Redis 用户是新浪微博,在新浪有 200 多台物理机,400 多个端口正在运行着 Redis, 有 +4G 的数据跑在 Redis 上来为微博用户提供服务。

2.5Redis的部署场景

1.应用程序直接访问 Redis 数据库

2. 应用程序直接访问 Redis,只有当 Redis 访问失败时才访问 MySQL

2.6Redis与其他数据库和软件的对比【了解一下;后续详解】

数据库和缓存服务器的特性与功能

名称类型数据存储选项查询类型附加功能
MySQL关系数据库每个数据库可以包 含多个表,每个表 可以包含多个行; 可以处理多个表的 视图(view);支 持空间(spatial) 和第三方扩展SELECT、 INSERT、 UPDATE、 DELETE、函数、 存储过程支持ACID性质 (需要使用 InnoDB),主从 复制和主主复制 (master/master replication)
memcached使用内存存 储的键值缓 存键值之间的映射创建命令、读取 命令、更新命 令、删除命令以 及其他几个命令为提升性能而设的 多线程服务器
MySQL关系数据库每个数据库可以包 含多个表,每个表 可以包含多个行; 可以处理多个表的 视图(view);支 持空间(spatial) 和第三方扩展SELECT、 INSERT、 UPDATE、 DELETE、函数、 存储过程支持ACID性质 (需要使用 InnoDB),主从 复制和主主复制 (master/master replication)
PostgreSQL关系数据库每个数据库可以包 含多个表,每个表 可以包含多个行; 可以处理多个表的 视图;支持空间和 第三方扩展;支持 可定制类型SELECT、 INSERT、 UPDATE、 DELETE、内置函 数、自定义的存 储过程支持ACID性质, 主从复制,由第三 方支持的多主复制 (multi-master replication)
MongoDB使用硬盘存 储(ondisk)的非 关系文档存 储每个数据库可以包 含多个表,每个表 可以包含多个无 schema(schemaless)的BSON文档创建命令、读取 命令、更新命 令、删除命令、 条件查询命令等支持map-reduce 操作,主从复制, 分片,空间索引 (spatial index)

 

3. Redis安装【基于CentOS 7.3 x86-64 系统安装 】

 S1:rpm包安装

配置epel的yum源
yum install http://mirrors.163.com/centos/7.3.1611/extras/x86_64/Packages/epel-release-7-
9.noarch.rpm
在线yum安装
yum install redis #安装完毕目前是redis-3.2.3-1.el7.x86_64.rpm
安装最新版本使用remi
yum install ftp://rpmfind.net/linux/remi/enterprise/7/remi/x86_64/redis4.0.1-1.el7.remi.x86_64.rpm
启动服务
systemctl start redissystemctl enable redis
验证测试
[root@localhost ~]# netstat -lnupt | grep :6379tcp        0      0 127.0.0.1:6379          0.0.0.0:*               
LISTEN      11413/redis-server [root@localhost ~]# ps -ef | grep redisredis     11413      1  0 10:46 ?        00:00:03 /usr/bin/redis-server 
127.0.0.1:6379[root@localhost ~]# lsof -i tcp:6379COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME       redis-ser 11413 redis   6u IPv4  29352     0t0 TCP localhost:6379 
(LISTEN)
登录
[root@localhost ~]# redis-cli 
127.0.0.1:6379> help
redis-cli 4.0.1
To get help about Redis commands type:"help @<group>" to get a list of commands in <group>"help <command>" for help on <command>"help <tab>" to get a list of possible help topics"quit" to exit
To set redis-cli preferences:":set hints" enable online hints":set nohints" disable online hints
Set your preferences in ~/.redisclirc127.0.0.1:6379> quit

S2:源码安装

下载
[root@localhost ~]# curl -O http://download.redis.io/releases/redis4.0.1.tar.gz
解压
[root@localhost ~]# tar xf redis-4.0.1.tar.gz -C /usr/local/src/
安装
[root@localhost ~]# cd /usr/local/src/redis-4.0.1/[root@localhost redis-4.0.1]# yum install gcc gcc-c++ make -y[root@localhost redis-4.0.1]# make[root@localhost redis-4.0.1]# make install
启动
[root@localhost redis-4.0.1]# mkdir -p /etc/redis[root@localhost redis-4.0.1]# cp redis.conf /etc/redis[root@localhost redis-4.0.1]# cd[root@localhost ~]# sed -i.bak 's/daemonize no/daemonize yes/' /etc/redis/redis.conf [root@localhost ~]# redis-server /etc/redis/redis.conf5448:C 12 Aug 11:54:21.743 # oO0OoO0OoO0Oo Redis is starting 
oO0OoO0OoO0Oo5448:C 12 Aug 11:54:21.743 # Redis version=4.0.1, bits=64, 
commit=00000000, modified=0, pid=5448, just started5448:C 12 Aug 11:54:21.743 # Configuration loaded

S3:Redis命令行客户端

发送命令
redis-cli -h 127.0.0.1 -p 6379redis-cli PINGredis-cli
命令返回值
状态回复,e.g. >PING2.3 Redis配置 错误恢复, e.g. >ECMD整数回复, e.g. >INCR foo字符串回复,e.g. >GET foo   >GET notexists`多行字符串回复,e.g. >KEYS *

S4:源码配置服务脚本:

#1、创建用户和组groupadd -g 935 -r redisuseradd -u 935 -g 935 -r -d /var/lib/redis -c “redis server” -s /sbin/nologin redismkdir -p /var/lib/redischown -R redis /var/lib/redischmod -R 700 /var/lib/redis
#2、修改配置文件
/etc/redis/redis.confdir /var/lib/redis/daemonize no
#3、创建服务脚本[root@localhost ~]# vim /usr/lib/systemd/system/redis.service [Unit]
Description=Redis persistent key-value database
After=network.target[Service]
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf --daemonize no
ExecStop=/usr/bin/kill -9 `pidof redis-server`
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755[Install]
WantedBy=multi-user.target[root@localhost ~]# systemctl daemon-reload【重新加载单元文件/更新服务状态】

 ...\sin \cos \tan 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 螺栓与散装物体检测系统源码分享
  • idea生成类信息及快捷开发配置
  • PHP邮件发送教程:如何用PHP发送电子邮件?
  • SQLServer TOP(Transact-SQL)
  • 隨著 iOS 18 到來,AirPods Pro 2 解鎖移動頭部回應 Siri 功能
  • 【PyQt5】object属性
  • 2023年全国研究生数学建模竞赛华为杯B题DFT类矩阵的整数分解逼近求解全过程文档及程序
  • idea多模块启动
  • 【北京迅为】《STM32MP157开发板使用手册》- 第三十九章 消息队列实验
  • k8s常用指令续:
  • 避免死锁发生的策略
  • 240919-Pip先在线下载不安装+再离线安装
  • AI助力智慧农田作物病虫害监测,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建花田作物种植场景下棉花作物常见病虫害检测识别系统
  • 一道涉及 Go 中的并发安全和数据竞态(Race Condition)控制的难题
  • 【Kubernetes】常见面试题汇总(十八)
  • [译]CSS 居中(Center)方法大合集
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 03Go 类型总结
  • exports和module.exports
  • Java编程基础24——递归练习
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Less 日常用法
  • Mithril.js 入门介绍
  • Node项目之评分系统(二)- 数据库设计
  • Terraform入门 - 1. 安装Terraform
  • use Google search engine
  • Web标准制定过程
  • 后端_ThinkPHP5
  • 前端知识点整理(待续)
  • 说说动画卡顿的解决方案
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 微信开源mars源码分析1—上层samples分析
  • 运行时添加log4j2的appender
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • PostgreSQL之连接数修改
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • #define、const、typedef的差别
  • (C++20) consteval立即函数
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (三)Honghu Cloud云架构一定时调度平台
  • (一)、python程序--模拟电脑鼠走迷宫
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)jQuery 基础
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET 使用 XPath 来读写 XML 文件