Redia数据库是一个非关系型数据库,我们先来了解关系型数据库与非关系型数据库的概念。
- 关系型数据库:关系型数据库是一个结构化的数据库, 创建在关系模型基础上,一般面向记录。它借助于集合代数等数学概念和方法来处理数据库中的数据。关系模型指二维表格模型,因而一个关系数据库就是由二维表及其之间的联系组成的一个数据组织。SQL语句就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作。主流的关系型数据库包括Oracle、MySQL、SQL Server、Microsoft Access、DB2等。
- 非关系型数据库:NoSQL,意思是“不仅仅是SQL”,是非关系型数据库的总称。主流的NoSQL数据库有Redis、MongBD、Hoase、CouhDB等。它们的存储方式,存储结构以及使用的场景都是完全不同的。所以我们认为它是一个非关系型数据库的集合,而不是像关系型数据库一样,是一个统称。换言之关系型数据库以外的数据库,都是非关系型的。
为什么会产生非关系型数据库?关系型数据库在面对Web2.0网站,特别是海量数据和高并发的SNS(社交网络访问)类型的Web2.0纯动态网站是,暴露了很多难以解决的问题:
- High performance-----对数据库高并发读写需求
- Huge Storage---对海量数据高效存储与访问需求
- High Scalability && High Availability---对数据库高可扩展与高可用性需求
Redia的优点:
- 具有极高的数据读写速度,数据读取的速度最高可达到110000次/s,数据写入速度最高可达到81000次/s。
- 支持丰富的数据类型,不仅仅支持简单的key-value数据类型,还支持Strings、Lists、Hashes、Sets及Ordered Sets等数据类型操作
- 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
- 原子性,Redis所有操作都是原子性的
- 支持数据备份,即master-salve模式的数据备份
Redis群集部署:
1、安装Redis并修改配置文件
yum -y install gcc gcc-c++
tar zxvf redis-3.2.9.tar.gz -C /usr/src/
cd /usr/src/redis-3.2.9
make && make install
在安装过程中,若想更改默认的安装路径,可以使用以下命令格式来进行操作:
make PREFIX=安装路径 install
make install只是安装了二进制文件到系统中,并没有启动脚本和配置文件。软件包中默认提供了一个install_server.sh脚本文件,通过该脚本文件可以设置Redis服务所需要的相关配置文件。当脚本运行完毕,Redis服务就已经启动,默认侦听端口号为6379
cd /usr/src/redis-3.2.9/utils
./install_server.sh
安装完成后,可通过Redis的服务控制脚本/etc/init.d/redis_6379来对Redis服务进行控制,如停止、启动、重启Redis服务
/etc/init.d/redis_6379 stop #关闭Redis服务
/etc/init.d/redis_6379 start #启动Redis服务
/etc/init.d/redis_6379 restart #重启Redis服务
配置参数
主配置文件为/etc/redis/6379.conf
vim /etc/redis/6379.conf
bind 192.168.248.10
daemonize yes
logfile "/var/log/redis_6379.log"
cluster-enabled yes #启动群集
cluster-config-file nodex-6379.conf #群集配置文件
cluster-node-timeout 15000
cluster-require-full-coverage no
port 6379
在每台服务器上安装并重启服务,查看6379和16379端口是否已经正常开启
2、使用脚本创建群集
创建群集要用到ruby的一个脚本
yum -y install ruby rubygems #安装安装ruby的运行环境和rudy的Redis客户端
gem install redis --version 3.2.0
使用脚本创建群集
cd /usr/src/redis-3.2.9/src
./redis-trib.rb create --replicas 1 192.168.248.10:6379 192.168.248.20:6379 192.168.248.30:6379 192.168.248.40:6379 192.168.248.50:6379 192.168.248.60:6379 #依次指定节点的IP
3、测试
redis-cli -h 192.168.248.10 -p 6379 -c
>set centos 7.3
>get centos