Redis(非关系型数据库)
数据库分类
l 关系型数据库
l 非关系型数据库
关系型数据库:一般面向于记录,借助集合代数等数学概念和方法来处理数据库中的数据,SQL语句是一种标准的数据库查询语言,用于对关系型数据库的检索和操作
主流:Oracle, MySQL, SQL Server,Microsoft Access,DB2 等
非关系型数据库:它有一个总称”NoSQL” 意思是不仅仅是SQL,这类数据库他们的存储方式,存储结构以及使用的场景是完全不同的。具有非关系型,分布式,开源和横向扩展等优势。
主流:Redis,MongBD,Hbase,CouhDB等
使用场景:随着web网站的兴起,关系型数据库在应对web网站,特别是海量数据和高并发时
主要处理生产环境下的问题:
l 对数据库高并发读取要求(网站访问量大)
l 对海量的数据高效存储与访问需求(存储大量用户的数据)
l 对数据库高扩展性与高可用性需求
Redis介绍:
使用C语言编写的,基于内存运行并支持持久化,采用键值对(key),所以主要依靠于内存!
redis是单进程,可以一台服务器上开启多个redis进程,要根据实际情况来做
安装方式有两种,一种是YUM直接安装,一种是源码包,编译安装
源码包编译安装(redis-4.0.9.tar.gz)
注意:编译时不用./Configure来编译,因为是redis源码包中直接提供了makefile文件
解压包
#tar xfv redis-4.0.9.tar.gz -C /usr/src/
编译包
#cd /usr/src/redis-4.0.9
其中redis.conf是主配置文件,可定义自己想要的配置(例如:开放端口等)
#make(有可能会出现报错,如果出现报错,就再重新来一遍)
#make PREFIX=/usr/local/redis install
#cd /src && make install
编译安装完成后,需要给它命令做一下软连接
#ln -s /usr/local/redis/bin/* /usr/local/bin/
到此redis算是基本安装完成,但是没有启动脚本和配置文件
软件包中提供一个install_server.sh脚本文件,通过该文件可以设置服务所需要的相关配置文件,当脚本运行完毕,服务实例即启动,默认端口6379
找到软件包里的脚本并运行
如图:
解释:
Please select the redis port for this instance: [6379] (请为这个实例选择redis端口:[6379])
Please select the redis config file name [/etc/redis/6379.conf](请选择redis配置文件名[/etc/redis/6379.conf])
Please select the redis log file name [/var/log/redis_6379.log](请选择redis日志文件名[/var/log/redis_6379.log])
Please select the data directory for this instance [/var/lib/redis/6379](请选择此实例的数据目录[/var/lib/redis/6379])
Please select the redis executable path [/usr/local/bin/redis-server](请选择redis可执行路径[/usr/local/bin/redis-server](服务端的命令))
以上在创建实例时,都可根据自己需要的来创建,创建完成后即启动
开放端口:
安装完成后,可以根据控制脚本来对实例服务进行控制,如启停服务等(/etc/init.d/redis_6379)
Redis 实例服务的主配置文件(/etc/redis/6379.conf)详解
可根据生产环境进行相关参数的调整:
#cat /etc/redis/6379.conf
70 bind 127.0.0.1 192.168.30.201 //监听的主机地址(实例在本机就本机地址)
93 port 6379 //端口
114 timeout 0 //客户端闲置多长时间关闭,0:表示关闭该功能
137 daemonize yes //开启守护进程
159 pidfile /var/run/redis_6379.pid //制定PID文件
167 loglevel notice //日志级别
172 logfile /var/log/redis_6379.log //日志文件
252 dbfilename dump.rdb //指定本地数据库文件名,默认值为dump.rdb (持久化)
531 # maxclients 10000 //最大客户端连接数,为0时是不限制,如果达到最大,会返回客户端max number of clients reached 错误信息
240 rdbcompression yes // 指定是否要压缩数据,默认是,为了节省cpu资源
280 # slaveof //设置主从时用到的,这个是从指定主的IP和端口
287 # masterauth //主端的密码
499 # requirepass foobared //指定连接redis密码,如果有,客户端连接时要输密码,默认关闭状态
558 # maxmemory //指定redis最大内存限制
671 appendonly no //redis默认是异步的把数据写入磁盘,如果不开启,可能会造成数据丢失,默认是NO
675 appendfilename “appendonly.aof” //指定更新日志文件,默认
701 appendfsync everysec //指定更新的日志文件(no/always/everysec)默认是每秒同步一次
1127 activerehashing yes //指定是否激活重置哈希,默认开启
36 # include /path/to/local.conf //引用其他文件,可以一台主机多个实例同一份文件
这里只需要修改bind即可,修改完后重启即可