一、了解一下Redis
Redis是一个开源、支持网络、基于内存、键值对的Key-Value数据库,使用ANSI C编码,并提供多种语言的API,它上手非常地简单,只需要几分钟我们就能完成安装工作,并让它开始与应用程序集成协作。只需肯投入一小部分时间与精力,大家就能获得立竿见影且效果极佳的性能提升,可以说它是一个非常简单缓存解决方案。它支持存储的Value值类型不仅限于字符串,而且支持主从服务器同步,数据持久化等等。大家都认为Redis是最流行的Key-Value存储数据库,肯定有人问Memcached呢?
Redis VS Memcached
Redis支持更多的数据类型,包括:String、Hash、List、Set;Memcached仅支持一种String数据类型。Redis通过Multi/Watch/Exec等命令可以支持事务的概念,原子性的执行一批命令;Memcached的应用模式中,除了increment/decrement这样的原子操作命令,不存在对事务的支持。Redis 可以以master-slave的方式配置服务器实现主从同步备份,同时只持两种持久化方案;Memcached不保证存储的数据的有效性,也不做数据的持久化工作。当然这些也都说明不了什么。
每种事物存在这个世界总有他的意义。Memcached的内部内存管理机制虽然不像Redis的那样复杂,但却更具实际效率。因为 Memcached在处理元数据时所消耗的内存资源相对更少;在横向扩展方面也比Redis更具优势,由于其在设计上的思路倾向,以及相对更为简单的功能设置,比如,缓存一段字符串或 Html页面的时候,相对来说用Memcached会更好一些。
二、CentOS下安装Redis
在Linux操作系统上安装Redis其实并不复杂,可以说是非常的简单,只要按照教程的步骤一步一步来。如果你对,只要大家按着我写的来做,基本不出问题。保险点,我说的是“基本”,哈哈。我们先来做准备的工作,这些准备的工作就是填坑的。
1、下载Redis安装包
我们可以去 官网 下载下载想要的版本,我们下载的是redis-3.2.5。
2、将下载的.tar.gz安装包通过xftp上传到Linux服务器。
3、解压安装包
使用tar命令解压文件压缩包,首先下载redis-3.0.0-rc2.tar.gz,放到/usr/local/software
# tar -zxvf redis-3.2.5.tar.gz #解压文件夹
# mv redis-3.2.5 /usr/local #重命名解压文件夹
3、进入解压后的目录进行编译redis
# /usr/local/redis-3.2.5
# make
4、指定安装目录进行安装,如 /usr/local/redis
# cd /usr/local/redis-3.2.5/
# make PREFIX=/usr/local/redis install #指定安装目录进行安装
5、拷贝配置文件到安装目录下
进入redis源码目录,里面有一份配置文件 redis.conf,然后将其拷贝到安装路径下
# cd /usr/local/redis # mkdir conf # cp /usr/local/redis-3.2.5/redis.conf /usr/local/redis/conf
6、修改redis.conf,配置服务端口
redis.conf是redis的配置文件,修改port作为redis进程的端口,port默认6400,修改 bind *.*.*.* 可以被访问的IP
# cd /usr/local/redis
# cd ./conf/
# vim redis.conf
7、删除源码文件夹
也可以不用删除源码包,以免后面会用到
# rm -rf /usr/local/redis-3.2.5
8、启动redis服务
直接运行bin/redis-server将以前端模式启动,前端模式启动的缺点是ssh命令窗口关闭则redis-server程序结束,不推荐使用此方法。
修改redis.conf配置文件, 修改 daemonize yes 以后端模式启动。
# cd /usr/local/redis # ./bin/redis-server ./conf/redis.conf
9、启动多个redis进程
创建多个redis目录,以端口号命名,比如:创建6379、6380两个目录,将redis的安装文件bin和conf拷贝至这两个目录。
修改6379目录下的redis.conf设置端口号为6379
修改6380目录下的redis.conf设置端口号为6380
启动6379和6380目录下的redis-server程序:
# cd 6379 # ./redis-server . /redis.conf # cd 6380 # ./redis-server . /redis.conf
10、关闭redis
强行终止Redis进程可能会导致redis持久化数据丢失。正确停止Redis的方式应该是向Redis发送SHUTDOWN命令,方法为:
# cd /usr/local/redis # ./bin/redis-cli shutdown
11、启动redis客户端连接
在redis的安装目录中有redis的客户端,即redis-cli(Redis Command Line Interface),它是Redis自带的基于命令行的Redis客户端。
执行bin/redis-cli连接redis服务端,默认连接的是本机的redis服务,可以指定连接redis服务的ip和端口:
# cd /usr/local/redis # ./bin/redis-cli -h 192.168.189.102 -p 6400
12、搭建集群环境
Redis支持集群最小的单位为6个实例,3个主节点、3个从节点,集群搭建:至少要三个master。
第一步:在local下创建redis-cluster,然后在其下分别创建6个文件夹:
[root@dark-li001 local]# mkdir -p /usr/local/redis-cluster [root@dark-li001 local]# cd /usr/local/redis-cluster [root@dark-li001 redis-cluster]# mkdir 7001 [root@dark-li001 redis-cluster]# mkdir 7002 [root@dark-li001 redis-cluster]# mkdir 7003 [root@dark-li001 redis-cluster]# mkdir 7004 [root@dark-li001 redis-cluster]# mkdir 7005 [root@dark-li001 redis-cluster]# mkdir 7006
第二步:把之前的redis.conf配置分别copy到700*下,进行修改各个文件内容,也就是对700*下的每一个copy的redis.conf文件进行修改,如下:
1.daemonize yes #使用后台服务启动
2.port 700* (分别对每个机器的端口号进行设置,如果是不同的机器则可以不用修改端口)
3.bind 192.168.1.*(必须要绑定当前机器的IP)
4.dir /usr/local/redis-cluster/700*/ (指定数据文件存放位置,必须要指定不同的目录,不然文件会丢失)
5.cluster-enabled yes (表示启动集群模式)
6.cluster-config-file nodes-700*conf
7.cluster-node-timeout 5000 (设置访问超时时间5s)
8.appendonly yes (启用AOP持久化机制)
操作如下:
[root@dark-li001 etc]# cp redis.conf /usr/local/redis-cluster/7001 [root@dark-li001 etc]# vim /usr/local/redis-cluster/7001/redis.conf
编辑后的内容为:
然后把7001的redis.conf分别拷贝其他对应7002到7006文件夹下,并修改port 和 dir 和
Cluster-config-file nodes-700*.conf
第三步:
由于redis集群需要使用ruby命令,所以需要安装ruby,安装步骤如下:
# yum install ruby # yum install rubygems # gem install redis(安装redis和ruby的接口)
第四步:
分别启动6个redis实例,然后检查是否启动成功
[root@dark-li001 local]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7001/redis.conf [root@dark-li001 local]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7002/redis.conf [root@dark-li001 local]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7003/redis.conf [root@dark-li001 local]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7004/redis.conf [root@dark-li001 local]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7005/redis.conf [root@dark-li001 local]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7006/redis.conf
检查是否正常启动,如图表示都已经正常启动:
[root@dark-li001 local]# ps -el | grep redis
第五步:首先到redis3.0的安装目录下,然后执行redis-trib.rb命令
# cd /usr/local/redis3.0/src #./redis-trib.rb create --replicas 1 192.168.239.131:7001 192.168.239.131:7002 192.168.239.131:7003 192.168.239.131:7004 192.168.239.131:7005 192.168.239.131:7006
如图集群就算是搭建成功了:
第六步:测试集群
如图克隆6个会话,每个会话对应连接到7001-7006:
第七步:查看集群状态、节点信息
登录到客户端:cluster info 、 cluster nodes
总结:
总结一下,可以先不去配置集群环境进行redis使用,但是可以设置单个服务节点学习redis的使用,安装和学习基本使用才是进一步学习的基础。