一.redis概述
2008年,意大利的一家创业公司Merzia推出了一款基于MySQL的网站实时统计系统LLOOGG,然而没过多久该公司的创始人Salvatore Sanfilippo便对MySQL的性能感到失望,于是他决定亲自为LLOOGG量身定做一个数据库,并于2009年开发完成,这个数据库就是Redis。不过Salvatore Sanfilippo并不满足只将Redis用于LLOOGG这一款产品,而是希望更多的人使用它,于是在同一年Salvatore Sanfilippo将Redis开源发布,并开始和Redis的另一名主要的代码贡献者Pieter Noordhuis一起继续着Redis的开发,直到今天。
Salvatore Sanfilippo 自己也没有想到,短短的几年时间,Redis就拥有了庞大的用户群体,Hacker News在2012年发布了一份数据库的使用情况调查,结果显示有近12%的公司在使用redis,国内如新浪微博、街旁网、知乎,国外如GitHub、Stack Overflow、Flickr等都是Redis的用户
VMware公司从2010年开始赞助Redis的开发,Salvatore Sanfilippo 和 Pieter Noordhuis也分别在3月和5月加入VMware,全职开发Redis
二.redis使用环境
1.关系型数据库的缓存方式
- 有很多的缓存方式和这个差不多,hibernate中的一级缓存也是如此
2.可以做任务队列
3.大量数据运算
4.排行榜
- redis非常擅长做大量数据的排行榜,如果你使用正常操作,就是用count(*)查询出当前所有的数目,之后再用java排序,但是这样效率太低了,不谈其他的,就是快排排一组数据,以最好情况下的复杂度,上千万的数据都要几秒时间
三.redis安装
1.安装gcc环境
redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境。如果没有gcc环境,需要安装gcc环境
yum install gcc-c++
2.下载redis
- 在windows下下载的压缩文件
3.通过secureCRT上传到Linux下
4.解压文件
tar -zxvf xxxx
注意:解压出来的并非是运行程序,而是安装程序
5.编译redis(编译,将.c文件编译为.o文件)
进入解压文件夹,执行make
这里会出现两种情况
如果没有安装gcc,编译将出现错误提示(如果安装失败,必须删除文件夹,重新解压)
安装成功
6.安装redis
make PREFIX=/usr/local/redis install//注意PREFIX必须大写,后面跟着是路径,这个可以任意写,但是这里我们就用这个路径了
安装完成后,进入/usr/local/redis目录下看见一个bin文件,进入bin文件夹中,会看见几个可执行文件
- redis-benchmark —性能测试工具
- redis-check-aof —AOF文件修复工具
- redis-check-dump —RDB文件检查工具(快照持久化文件)
- redis-cli —命令行客户端
- redis-server —redis服务器启动命令
7.copy配置文件
redis启动需要一个配置文件,可以修改端口号等信息
进入刚才解压出来的文件夹目录,会看到一个redis.conf文件,这个就是配置文件
cp redis.conf /usr/local/redis
注意:如果没有配置文件redis也可以启动,不过将启用默认配置,这样不方便我们修改端口号等信息
四.前端启动redis(了解)-无法部署集群
首先我们记住常用软件的端口号,比如
mysql 3306
tomcat 8080
redis 6379
- 启动命令
./bin/redis-server
pid是进程号,port是所用的端口号
- 打开redis的客户端
./bin/redis-cli
- 启动redis客户端连接:连接指定ip地址,指定的端口的redis数据库
./bin/redis-cli -h 127.0.0.1 -p 8379
五.后端启动redis
- 修改redis.conf配置文件 daemonize yes以后端模式启动
vim /usr/local/redis/redis.conf
- 启动时,指定配置文件
./bin/redis-server ./redis.conf //后面就是指定的配置文件
- Redis默认端口6379 通过当前服务进行查看
ps –ef|grep –i redis
六.redis的关闭
1.查询到PID
- 断电,非正常关闭,一般不用,否则造成数据丢失
kill -9 pid
2.正常关闭
- 正常关闭,数据保存
./bin/redis-cli shutdown
简单的来说就是利用客户端的关闭命令来进行关闭的