1. Redis的介绍
Redis是一种非关系型数据库(NoSQL),NoSQL是以key-value的形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说SQL标准,ACID属性,表结构等等,这类数据库主要有以下特点:非关系型的、分布式的、开源的、水平可扩展的。
NoSQL使用场景:对数据高并发读写、对海量数据的高效率存储和访问、对数据的高可扩展性和高可用性。
Redis的key可以是字符串、哈希、链表、集合和有序集合。value类型很多,包括string、list、set、zset。这些数据类型都支持push/pop、add/remove以及取交集和并集及更丰富的操作,Redis支持各种不同方式的排序。为了保证效率,数据都是在缓存在内存中,它也可以周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
有了redis有哪些好处呢?举个比较简单的例子,看下图:
Redis集群和Mysql是同步的,首先从redis中获取数据,如果redis挂了,再从mysql中获取数据,这样网站就不会挂掉。更多关于redis的介绍以及使用场景,可以谷歌和百度,在这就不赘述了。
2. Redis的安装与部署
2.1 连接虚拟机首先得启动虚拟机的network服务。
我装的是目前最新版的CentOS7,虚拟机的网络使用的是桥接的方式。CentOS默认是不开启网卡的,所以首先得修改下配置。运行vi /etc/sysconfig/network-scrips/ifcfg-eno16777736打开配置文件将ONBOOT=no改为yes,CentOS默认是不开启网卡的接着在虚拟机重启network服务。#service network restart使用ifconfig查看eno16777736的ip地址,我的是192.168.1.120在window命令行ping一下该地址,如果能ping的通,说明可以连接。我的ip是192.168.1.105,所以没问题。ping通了说明可以使用putty来链接虚拟机了(当然了,也可以不使用putty,直接在CentOS的命令行操作也行,所以这一步不是必须的),打开putty输入虚拟机的ip地址,然后输入用户名和密码即可连接上:
2.2 安装gcc编译因为后面安装redis的时候需要编译,所以事先得先安装gcc编译,yum install gcc-c++
2.3 下载、解压和编译wget http://download.redis.io/releases/redis-3.2.2.tar.gz tar xzvf redis-3.2.2.tar.gz cd redis-3.2.2 makemake这一步可能会报错,如果报错,可以尝试使用如下命令来编译:make MALLOC=libc编译好的二进制文件会放到src/目录下,可以看到有redis-server和redis-cli,这是redis的服务端可客户端,我们到时候可以直接运行这两个文件即可启动服务端和客户端,下面再说。另外还有一些其他配置文件。我们会觉得这有点乱,所以我们一般会自己新建一个目录专门存放命令和配置。
2.4 移动文件、便于管理当然,你也可以不这么做~不过建议自己管理一下命令和配置,因为我的所有命令和配置都放在/usr/local/目录下,所有我在/usr/local/下新建了一个reids目录以及两个子目录来存放redis的命令和配置文件:mkdir –p /usr/local/redis/bin 放命令 mkdir –p /usr/local/redis/etc放配置文件然后将上面src目录下的命令和配置文件分别移动到对应的目录,移动后的结果如下:
2.5 启动redis服务进入到/usr/local/redis/bin目录下,执行./redis-server /usr/local/redis/etc/redis.conf这是根据配置文件redis.conf来启动redis服务,但是默认是前台启动的,会占用我的session,如果想要后台启动redis,还需要修改一下redis.conf的配置,打开该配置文件:vi /usr/local/redis/etc/redis.conf然后将daemonize=no改为yes,然后再启动一下redis服务就可以后台启动了,然后我们可以查看一下是否启动成功:ps -ef | grep redis 查看是否启动成功 netstat -tunpl | grep 6379 查看该端口有没有占用 结果如下:可以看出,redis启动正常。
2.6 启动redis客户端redis客户端命令也在bin目录下,是redis-cli文件,运行一下即可启动redis客户端:./redis-cli启动结果如下:
随便往里面插入一个name为eson15测试一下,可以正常获取,说明客户端没有问题。退出客户端的话直接quit即可。2.7 关闭redis服务关闭redis服务的话直接使用如下命令即可:pkill redis-server
可以看出,关闭了之后就没有该服务的信息了,端口号也没有占用了,运行客户端就会提示无法连接,说明redis服务已经关闭了。当然了,也可以使用如下命令关闭:./redis-cli shutdown