Redis群集
结构图
技能展示:
掌握Redis安装及配置
掌握Redis常用命令
掌握Redis群集原理及部署方法
简介
在现在的互联网大潮中, NosaL可谓家喻户晓, Redis作为NosaL大军中极其重要的一员,是我·们走向架构道路的一条必经之路,本章的目标,就是了解关系型数据库与非关系型数据库的区别.掌握Redis的安装与群集部署等相关知识。
重点
> Redis安装配置
> Redis群集工作原理
> Redis群集部署
理论讲解
Redis介绍
Redis数据库是一个非关系型数据库,在正式学习Redis之前,我们先来了解关系型数据库与非关系型数据库的概念。
关系型数据库与非关系型数据库
数据库按照其结构可以分为关系型数据库与其他数据库,而这些其他数据库我们将其统称为非关系型数据库。
1.关系型数据库
关系型数据库是一个结构化的数据库,创建在关系模型基础上,一般面向记录。它借助于集合代数等数学概念和方法来处理数据库中的数据,关系模型指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织,现实世界中,各种实体与实体之间的各种联系都可以用关系模型来表示. SaL (Structured Query Language,结构化查询语言)语句就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作。
主流的关系型数据库包括Oracle, MysOL, SOL Server, Microsoft Access. DB2等。
2.非关系型数据库
NoSL (NoSOL = Not Only SOL ),意思是"不仅仅是SQL",是非关系型数据库的总称,主流的NoSQL数据库有Redis, MongBD, Hbase, CouhDB等,以上这些数据库,它们的存储方式,存储结构以及使用的场景都是完全不同的,所以我们认为它是一个非关系型数据库的集合,而不是像关系型数据库一样,是一个统称,换言之,主流的关系型数据库以外的数据库,都是非关系型的. NosaL数据库凭借着其非关系型,分布式、开源和横向扩展等优势,被认为是下一代数据库产品。
1.Redis简介
Redis是一个开源的、使用C语言编写、支持网络、可基于内存亦可持久化的日志型. key-valve(键值对)数据库,是目前分布式架构中不可或缺的一环.Redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Redis进程,而Redis的实际处理速度则完全依靠于主进程的执行效率,若在服务器上只运行一个Redis进程,当多个客户端同时访问时,服务器的处理能力会有一定程度的下降;若在同一台服务器上开启多个Redis进程Redis在提高并发处理能力的同时会给服务器的CPU造成很大压力。也就是说,在实际生产环境中,需要根据实际的需求来决定开启多少个Redis进程。若对高并发要求更高一些,可能会考虑在同一台服务器上开启多个进程;若CPU资源比较紧张,采用单进程即可。
Redis具有以下几个优点。
具有极高的数据读写速度,数据读取的速度最高可达到110000/,数据写入速度最高可达到81000次/s。
支持丰富的数据类型,不仅仅支持简单的key-valve数据类型,还支持Strings. Lists, Hashes.Sets 及Ordered Sets等数据类型操作。
支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
原子性, Redis所有操作都是原子性的。
支持数据备份,即master-salve模式的数据备份。
Redis作为基于内存运行的数据库,缓存是其较常应用的场景之一,除此之外, Redis常见应用·场景还包括获取最新N个数据的操作、排行榜类应用、计数器应用、存储关系、实时分析系统、日志记录等。
1.数据库的类型
1)关系数据库
目前主流数据库类型
保证数据的真实性,有效性,唯一性,减小数据冗余
2)非关系数据库
没有关系数据库存储数据类型严格
存储和读取效率比关系数据库速度更快
2.常见关系数据库
1)Orale
大型数据库
支持windows.linux平台
安全
稳定
可靠
付费产品
2)sql server
大型数据库
支持windows平台
图形化界面
配置简单
易用
3)Msql
小型数据库
支持windows.linux平台
开源免费
稳定
占用资源小
3.常见的非关系数据库类型和特点
1)常见非关系数据库类型
Redis
MongDB
Hbase
couhDB
2)非关系数据库特点
高性能读取和写入
支持广泛的语言类型
支持将内存数据持久化保存到硬盘中
可扩展性强
3)非关系数据库的优势
支持高性能读取每秒11W并发,写入高并发81000并发
支持java.string.lists.hashes语言存储数据
数据是不可分割的原子
支持一主多备方式保证数据的可靠性
二.安装redis数据库
用redis镜像文件
1.安装redis
解压
[root@Centos ~]# tar zxvf /mnt/redis-3.2.9.tar.gz -C /usr/src/
1)移动redis安装位置在这里插入图片描述
[root@Centos ~]# mv /usr/src/redis-3.2.9/ /usr/local/redis
2)编译redis
[root@Centos ~]# cd /usr/local/redis
[root@Centos redis]# make install
3)运行redis安装脚本安装程序
[root@Centos redis]# ./utils/install_server.sh
2.启动停止redis
1)启动redis
[root@Centos ~]# /etc/init.d/redis_6379 start
2)监听6379端口
[root@Centos ~]# netstat -anptu | grep 6379
3)停止redis服务
[root@Centos ~]# /etc/init.d/redis_6379 stop
3.redis常见的管理工具
1)redis-server
手动添加启动redis数据库实例
2)redis-benchmark
redis性能检测工具
3)redis-cli
redis客户端
4)redis-check-aof
修复redis的aof文件
5)redis-check-rdb
修复持久化文件
6)redis-sentinel
配置redis软连接
4.性能测试用具redis-benchmark常见的选项
1)-p
指定目标服务器端口
2)-h
登录服务器主机的IP地址或者计算机名
3)-c
指定并发连接
4)-s
指定服务器端的socket
5)-q
退出
6)-t
使用逗号分隔测试命令列表
5.redis的应用
1)客户端登redis服务器
[root@Centos ~]# redis-cli
2)登录远程redis服务器
[root@Centos ~]# redis-cli -h 127.0.0.1 -p 6379
3)存储数据设置键值对,键值名是benet
127.0.0.1:6379> set benet aaa
4)查看键值
127.0.0.1:6379> get benet
5)查看所有的数据
127.0.0.1:6379> KEYS *
6)修改键值名字为accp
127.0.0.1:6379> RENAME benet accp
7)通知键值数量
127.0.0.1:6379> DBSIZE
8)切换键值
127.0.0.1:6379> SELECT 1
9)删除键值
127.0.0.1:6379[1]> DEI accp
10)清除数据库
127.0.0.1:6379[1]> EXISTS accp
6.配置reids群集
1)修改主配置文件
[root@Centos ~]# vim /etc/redis/6379.conf
63 bind 192.168.10.10
724 cluster-enabled yes
733 cluster-config-file nodes-6379.conf
740 cluster-node-timeout 15000
818 cluster-require-full-coverage no
切换centos7镜像
2)复制群集程序redis-3.2.0.gem到指定目录
[root@Centos ~]# cp /mnt/redis-3.2.0.gem /usr/local/redis/src/
3)加载redis-3.2.0.gem程序
[root@Centos ~]# cd /usr/local/redis/src/
[root@Centos src]# gem install redis --version 3.2.0
4)将redis群集数据清空
[root@Centos ~]# redis-cli -h 192.168.100.10 -p 6379
192.168.100.10:6379> FLUSHALL
5)创建群集添加群集节点
[root@Centos ~]# /usr/local/redis/src/redis-trib.rb create --replicas 1 192.168.100.10:6379
192.168.100.20:6379 192.168.100.30:6379 192.168.100.40:6379 192.168.100.50:6379
192.168.100.60:6379
6)查看群集节点
[root@Centos ~]# /usr/local/redis/src/redis-trib.rb check 192.168.100.10:6379
7)访问群集节点写入数据
[root@Centos ~]# redis-cli -h 192.168.100.10 -p 6379
192.168.100.10:6379> set benet aaa
感谢观看!拜拜ヾ(•ω•`)o😊😄😁