Redis介绍
为了解决高并发、高可用、高可扩展,大数据存储等一系列问题而产生的数据库解决方案,就是NoSql。
NoSql:(Not only sql),叫非关系型数据库。不能替代关系型数据库,作为关系型数据库的一个补充。
l NoSql的分类
n 键值(Key-Value)存储数据库
相关产品:Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
n 列存储数据库
相关产品:Cassandra, HBase, Riak
n 文档型数据库
相关产品:CouchDB、MongoDB
n 图形(Graph)数据库
相关数据库:Neo4J、InfoGrid、Infinite Graph
l 什么是redis?Redis是REmote DIctionary Server(远程字典服务器)的缩写,是用c语言开发的一个高性能键值数据库。可以通过键值格式来存储数据。允许其他应用通过TCP协议读写字典中的内容。支持的键值数据类型有:
String字符类型、map散列类型、list列表类型、set集合类型、sortedset有序集合类型
l redis历史发展:2008年,意大利的一家创业公司Merzia推出了一款基于MySQL的网站实时统计系统LLOOGG,然而没过多久该公司的创始Salvatore Sanfilippo便对MySQL的性能感到失望,于是他决定亲自为LLOOGG量身定做一个数据库,并于2009年开发完成,这个数据库就是Redis。不过Salvatore Sanfilippo并不满足只将Redis用于LLOOGG这一款产品,而是希望更多的人使用它,于是在同一年Salvatore Sanfilippo将Redis开源发布,并开始和Redis的另一名主要的代码贡献者Pieter Noordhuis一起继续着Redis的开发,直到今天。
l Redis数据库中的所有数据都存储在内存中。内存的读写速度远快于硬盘,因此性能有优势,在一台普通的笔记本电脑上,Redis可以在一秒内读写超过十万个键值。
l 数据存储在内存中也有问题,程序退出后内存中的数据会丢失。Redis提供了持久化支持,即可以将内存中的数据异步写入到硬盘中,同时不影响继续提供服务。
redis的应用场景
缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)
分布式集群架构中的session分离。
聊天室的在线好友列表。
任务队列。(秒杀、抢购、12306等等)
应用排行榜。
网站访问统计。
数据过期处理(可以精确到毫秒)
redis安装
官网地址:http://redis.io/
下载地址:http://download.redis.io/releases/redis-6.0.16.tar.gz
说明:有偶数版本标记表示版本稳定,例如1.2、2.0。奇数版本标记表示不稳定版本,例如2.9.x版。
redis的安装
redis的安装环境会安装到linux系统中。
第一步:安装VMware,并且在VMware中安装centos系统(参考linux教程)。
第二步:将redis的压缩包,上传到linux系统
第三步:对redis的压缩包进行解压缩
[root@xayq usr]# tar -zxvf redis-3.0.0.tar.gz
第四步:安装c语言编译环境(gcc-c++)
第五步:编译redis源码
[root@xayq usr]# cd redis-6.0.0
[root@xayq redis-3.0.0]# make
注:在centos7中安装redis6时,需升级gcc版本到5.3。
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash #使gcc版本临时生效(scl命令),
#echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile #使版本长期生效
第六步:安装redis
[root@xayq redis-3.0.0]# make install PREFIX=/usr/local/redis5
第七步:查看是否安装成功
[root@xayq local]# cd redis3/
[root@xayq redis3]# ll
redis启动
l 在安装成功的bin目录下提供了常用命令:
l 前端启动,命令: [root@itheima bin]# ./redis-server
关闭方式:
强制关闭:Ctrl+c
正常关闭:[root@xayq bin]# ./redis-cli shutdown
前端启动的问题:一旦客户端关闭,则redis服务也停掉。
l 后端启动
第一步:需要将redis解压之后的源码包中的redis.conf文件拷贝到bin目录下
[root@xayq bin]# cp -r /usr/redis-5.0.6/redis.conf ./
第二步:修改redis.conf文件,将daemonize改为yes,使redis以守护进程模式运行。
第三步:使用命令后端启动redis
[root@xayq bin]# ./redis-server redis.conf
第四步:查看是否启动成功
[root@xayq bin]# ps -aux | grep redis
关闭后端启动的方式:
强制关闭:[root@xayq bin]# kill -9 8665
正常关闭:[root@xayq bin]# ./redis-cli shutdown
建议正常关闭。因为redis将数据存储到内存中,如果使用正常关闭,则会将内存数据持久化到本地之后再关闭。如果是强制关闭,则不会进行持久化操作,可能会造成部分数据的丢失。