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

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: Redis之Nosql数据库分类、存储类型、特点;Redis 作用、与其他库的对比、使用场景以及如何部署、安装等具体详解步骤;举例说明、注意点及常见报错问题所对应的解决方法

欢迎各位彦祖与热巴畅游本人专栏与博客

你的三连是我最大的动力

以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现]

专栏跑道一

➡️网络空间安全——全栈前沿技术持续深入学习

image.gif

专栏跑道二

➡️ 24 Network Security -LJS

image.gif

image.gif

image.gif

专栏跑道三


➡️ MYSQL REDIS Advance operation

image.gif

专栏跑道四

➡️HCIP;H3C-SE;CCIP——LJS[华为、华三、思科高级网络]

image.gif

专栏跑道五

➡️RHCE-LJS[Linux高端骚操作实战篇]

image.png

专栏跑道六

➡️数据结构与算法[考研+实际工作应用+C程序设计]

image.gif

专栏跑道七

➡️RHCSA-LJS[Linux初级及进阶骚技能]

image.gif

image.gif

上节回顾





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

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

1.4 NoSQL 产品

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

image.gif 编辑

NoSQL产品的显著特点:

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

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

image.gif

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下载网站

2.4Redis使用群体

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

image.gif

2.5Redis的部署场景

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

image.gif

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

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
image.gif

在线yum安装

yum install redis #安装完毕目前是redis-3.2.3-1.el7.x86_64.rpm
image.gif

安装最新版本使用remi

yum install ftp://rpmfind.net/linux/remi/enterprise/7/remi/x86_64/redis4.0.1-1.el7.remi.x86_64.rpm
image.gif

启动服务

systemctl start redis
systemctl enable redis
image.gif

验证测试

[root@localhost ~]# netstat -lnupt | grep :6379
       tcp        0      0 127.0.0.1:6379          0.0.0.0:*               
LISTEN      11413/redis-server 
[root@localhost ~]# ps -ef | grep redis
       redis     11413      1  0 10:46 ?        00:00:03 /usr/bin/redis-server 
127.0.0.1:6379
[root@localhost ~]# lsof -i tcp:6379
       COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME       redis-ser 11413 redis   6u IPv4  29352     0t0 TCP localhost:6379 
(LISTEN)
image.gif

登录

[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 ~/.redisclirc
        
127.0.0.1:6379> quit
image.gif

S2:源码安装

下载

[root@localhost ~]# curl -O http://download.redis.io/releases/redis4.0.1.tar.gz
image.gif

解压

[root@localhost ~]# tar xf redis-4.0.1.tar.gz -C /usr/local/src/
image.gif

安装

[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
image.gif

启动

[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.conf
            5448:C 12 Aug 11:54:21.743 # oO0OoO0OoO0Oo Redis is starting 
oO0OoO0OoO0Oo
            5448:C 12 Aug 11:54:21.743 # Redis version=4.0.1, bits=64, 
commit=00000000, modified=0, pid=5448, just started
            5448:C 12 Aug 11:54:21.743 # Configuration loaded
image.gif

S3:Redis命令行客户端

发送命令

redis-cli -h 127.0.0.1 -p 6379
redis-cli PING
redis-cli
image.gif

命令返回值

状态回复,e.g. >PING2.3 Redis配置 
           错误恢复, e.g. >ECMD
           整数回复, e.g. >INCR foo
           字符串回复,e.g. >GET foo   >GET notexists`
           多行字符串回复,e.g. >KEYS *
image.gif

S4:源码配置服务脚本:

#1、创建用户和组
groupadd -g 935 -r redis
useradd -u 935 -g 935 -r -d /var/lib/redis -c “redis server” -s /sbin/nologin redis
mkdir -p /var/lib/redis
chown -R redis /var/lib/redis
chmod -R 700 /var/lib/redis
image.gif
#2、修改配置文件
/etc/redis/redis.conf
               
dir /var/lib/redis/
               
daemonize no
image.gif
#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【重新加载单元文件/更新服务状态】




相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
16天前
|
NoSQL 关系型数据库 MySQL
2024 RedisAnd Mysql基础与进阶操作系列(17)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]
如何通过php和python客户端来操作Redis数据库等保姆式具体操作详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
16天前
|
SQL NoSQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(13)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]
MYSQL日志之详解如何配置查看二进制、查询及慢查询日志;备份与恢复等具体详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
2024Mysql And Redis基础与进阶操作系列(13)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]
|
16天前
|
SQL 存储 NoSQL
2024Mysql And Redis基础与进阶操作系列(12)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]
MYSQL之如何开启、提交、回滚事务和MYSQL事务特性等具体详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
2024Mysql And Redis基础与进阶操作系列(12)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]
|
17天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习(8)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
17天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构的基本概念;算法的基本概念、特性以及时间复杂度、空间复杂度等举例说明;【含常见的报错问题及其对应的解决方法】
|
17天前
|
存储 人工智能 算法
2024重生之回溯数据结构与算法系列学习(7)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
IKU达人数据结构与算法系列学习之队列的基本概念、如何判断队列已满/已空、队列的链式存储结构[头的出入队]、双端队列、中缀、后缀、前缀表达式、特殊矩阵和一二维数组的压缩储存等具体操作详解步骤;举例说明、注意点及常见报错问题所对应的解决方法 你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
17天前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之顺序表习题精讲【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找习题精讲等具体详解步骤以及举例说明
|
16天前
|
NoSQL 关系型数据库 MySQL
2024 RedisAnd Mysql基础与进阶操作系列(16-3)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]
Redis数据类型之List类型语法格式说明表及LPUSH/LPUSHX/LRANGE、LPOP/LLEN、LREM/LSET/LINDEX/LTRIM、LINSERT RPUSH/RPUSHX/RPOP/RPOPLPUSH等具体操作详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
16天前
|
NoSQL 关系型数据库 Redis
2024 RedisAnd Mysql基础与进阶操作系列(18)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]
Redis 如何高级应用之密码防护、数据持久化、基于文件追加方式持久化、主从同步、消息订阅类型与之对应的命令、事务从开始到执行会经历以下三个阶段、多数据库等保姆式具体操作详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
16天前
|
存储 NoSQL 关系型数据库
2024 RedisAnd Mysql基础与进阶操作系列(16-4)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]
Redis数据类型之Set类型及相关命令如:SADD/SMEMBERS/SCARD/SISMEMBER、SPOP/SREM/SRANDMEMBER/SMOVE、SDIFF/SDIFFSTORE/SINTER/SINTERSTORE 等具体操作详解步骤;举例说明、注意点及常见报错问题所对应的解决方法

相关产品

  • 云数据库 RDS MySQL 版