介绍:
Redis是一个开源项目。而且是由C语言编写,支持网络,可基于内存亦可持久化得日志型,key-value(键值对) 数据库,是目前分布式机构中不可或缺的一环。
Redis数据库是一个非关系型数据库,作为NoSQL大军中极其重要的一员,数据库大体分为两类,一类是关系型数据库,另一类是非关系型数据库。他们的区别如下:
关系型数据库:
是一个结构化的数据库,创建在关系模型基础上,一般面向记录。它借助于集合代数等数学概念和方法来处理数据库中的数据,关系模型指二维表格模型,因而一个关系数据库就是由二维表及之间的联系组成的一个数据组织。
SQL(Structured Query Language,结构化查询语言),语句就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检查和操作。
主流的关系型数据库包括:Oracle、MySQL、SQL Server、Microsoft Access
DB2等。
非关系型数据库:
NoSQL,意思是“不仅仅是SQL”,是非关系型数据库的总称,主流的NoSQL
数据库都有:Redis、MongBD、Hbase、CouhDB。以上的数据库,它们的存储方式,存储结构以及使用的场景都是完全不同的,所以我们可以认为这是一个非关系数据库的集合,而不是像关系型数据库一样,是一个统称。
非关系数据库的优势是:可分布式、开源和横向扩展等。
Redis的优点:
具有极高的数据读写速度,数据读取的速度最高可达到110000次每秒。数据写入速度最高可达到81000次每秒。
支持丰富的数据库类型,不仅仅支持简单的key-value数据库类型,还支持Strings、Lists、Hashes、Sets和Ordered Sets等数据库类型操作。
支持数据的持久性,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
原子性,Redis所有操作都是原子性的。
支持数据备份,和master-salve模式的数据备份。
Redis作为基于内存运行的数据库,缓存是比较常用的场景之一,Redis应用场景还包括获取最新N个数据的操作,排行榜类应用,计数器应用,存储关系、实时分析日志、日志记录等。
Redis安装部署:
安装步骤:
介绍:
Redis是一个开源项目。而且是由C语言编写,支持网络,可基于内存亦可持久化得日志型,key-value(键值对) 数据库,是目前分布式机构中不可或缺的一环。
Redis数据库是一个非关系型数据库,作为NoSQL大军中极其重要的一员,数据库大体分为两类,一类是关系型数据库,另一类是非关系型数据库。他们的区别如下:
关系型数据库:
是一个结构化的数据库,创建在关系模型基础上,一般面向记录。它借助于集合代数等数学概念和方法来处理数据库中的数据,关系模型指二维表格模型,因而一个关系数据库就是由二维表及之间的联系组成的一个数据组织。
SQL(Structured Query Language,结构化查询语言),语句就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检查和操作。
主流的关系型数据库包括:Oracle、MySQL、SQL Server、Microsoft Access
DB2等。
非关系型数据库:
NoSQL,意思是“不仅仅是SQL”,是非关系型数据库的总称,主流的NoSQL
数据库都有:Redis、MongBD、Hbase、CouhDB。以上的数据库,它们的存储方式,存储结构以及使用的场景都是完全不同的,所以我们可以认为这是一个非关系数据库的集合,而不是像关系型数据库一样,是一个统称。
非关系数据库的优势是:可分布式、开源和横向扩展等。
Redis的优点:
具有极高的数据读写速度,数据读取的速度最高可达到110000次每秒。数据写入速度最高可达到81000次每秒。
支持丰富的数据库类型,不仅仅支持简单的key-value数据库类型,还支持Strings、Lists、Hashes、Sets和Ordered Sets等数据库类型操作。
支持数据的持久性,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
原子性,Redis所有操作都是原子性的。
支持数据备份,和master-salve模式的数据备份。
Redis作为基于内存运行的数据库,缓存是比较常用的场景之一,Redis应用场景还包括获取最新N个数据的操作,排行榜类应用,计数器应用,存储关系、实时分析日志、日志记录等。
Redis安装部署:
安装步骤:
这里注意了。Make install 只是安装了二进制文件到系统中,并没有启动脚本和配置文件,软件包中默认提供了一个install_server.sh脚本文件。通过该脚本文件可以配置Redis服务所需要的相关配置文件。Redis服务的默认侦听端口为6379
执行脚本后根据提示,进行操作:
查看端口号
安装完毕之后,可通过Redis的服务控制脚本/etc/init.d/redis_6379来对Redis服务进行控制。停止Redis、启动Redis、重启Redis、查看Redis运行状态。
配置文件参数:
Redis主配置文件为/etc/redis/6379.conf(这个路径可自定义),又注释行与配置行两部分组成。与大多Linux配置文件一样,#表示注释。
Redis命令工具:
Redis软件提供了多个命令工具,当Redis安装时,所包含的软件工具会同时被安装到系统中,在系统中可以直接使用。
启动Redis的工具:
用于检测Redis在本机的运行效率
修复AOF持久化文件:
修复RDB持久化文件
Redis命令工具:
Redis数据库系统也是一个典型的C/S(客户端/服务器端)架构的应用,要访问Redis数据库需要使用专门的客户端软件,Redis服务的客户端软件就是自带Redis-cli命令工具。
在进行数据库连接操作时,可以通过选项来指定远程主机上的Redis数据库,
命令语法为Redis-cli -h host -p port -a password
查看所有与list数据库类型相关的命令
查看set命令的命令帮助
Redis数据库采用key-value(键值对)的数据库存储形式,所有用的命令是set与get命令:
Set:存储数据,基本的命令格式为set key value
Get:获取数据,基本的命令格式为get key
//查看当前数据库中所有键
exists命令类似于Linux里面的test命令,用于判断键值是否存在。
删除当前数据库的指定key。
获取key对应的value值类型。
rename命令是对已有key进行重命名,其命令格式为“rename 源key 目标key”
Redis群集原理
Redis Cluster采用虚拟槽分区,将所有的数据根据算法映射到0~16384整数,redis Cluster是一个无中心的结构,每个节点都保存数据和整个群集的状态
群集角色:
Master:master之间分配slots
Slave:slave向它指定的master同步数据
集群节点使用的tcp端口
6379端口用于客户端的连接
16379端口用于群集总线
选举过程,如果群集任意master挂掉,且当前master没有slave则群集进入fail状态,也可以理解成群集的slot映射[0-16383]不完整时进入fail状态,如果群集中超过一半的master挂掉,无论是否有slave,群集都进入fail状态。
操作步骤:
需要准备至少六台服务器,其中三台为master;三台为slave。
修改配置文件:
注:(其他的节点配置也都一样,除监听IP不同。)
重启Redis服务,并查看6379和16379端口是否已经正常开启。
使用脚本创建群集:
创建群集要用到ruby的一个脚本,在创建群集前,需要先安装ruby的运行环境和ruby的Redis客户端。(该操作在群集中任意一台执行即可)
Gem命令是提前下载redis.gem软件包提供的。
使用脚本创建群集:
查看群集状态:
登录群集测试: