关于Redis,不做解释,主要讲操作
一、准备一个纯净版的CentOS 6.5
二、SSH工具连接CentOS 64-bit-Redis
三、安装curl下载工具包
yum install curl
(如果安装的过程中自动yes,带上参数 yum-y install curl)
四、利用curl下载 rvm(redis集群要用到ruby编译环境,而ruby的下载和安装,可以直接由rvm版本管理器管理 )
A.没下载前,rvm找不到组织
B.下载
(1)curl -L get.rvm.io | bash -s stable
此方法已失效,转到(如果没失效,基本上不可能的,没失效,不用管好吧!)
(2)curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
好了,看到上面的提示,我们继续利用第一步的命令下载rvm管理器
(3)curl -L get.rvm.io | bash -s stable
(4)看到这里,就表示rvm下载成功了,启动rvm服务的话,需要
source /etc/profile.d/rvm.sh
C.利用rvm(ruby)版本管理器,下载ruby(注意,redis 4.0.2需要依赖ruby 2.2版本以上,目前最新的ruby版本是2.4.2)
(1)rvm 环境依赖包(需求,这个包比较全)检查并安装Installl,此过程需要花费点时间(30s左右)
rvm requirements
(2)再来个yum命令,把依赖包补全,保险起见(没试过这个不下载安装会有什么影响,下了,肯定也不会有什么影响!)
rvmsudo yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel
(3)ruby下载安装,搞起(查找对应的版本并下载需要点时间,)
rvm install 2.4.2
大概五六分钟,走完
complete后,我们rvm指定ruby的使用
rvm use 2.4.2
基于以上所有步骤,我们查看下当前ruby 的gem的版本(gem:一个管理Ruby库和程序的标准包)
rvm rubygems current
因为,后面需要讲到 redis 集群的模拟,这个会用到 redis-trib.rb可执行文件,而这个文件又依赖于ruby环境编译,因此,上面下载和安装了一堆,是为后面的redis集群做铺垫,最后一步
gem install redis (需要一段时间)
不用管下载的redis的gem包的版本号,和我们本篇所要安装的redis版本号不统一的问题,二者不是一个,但肯定互相兼容
五、安装Redis 4.0.2
(1)在 /usr/local/src/ 目录下,创建 redis 目录
(2)在当前redis目录,使用wget下载,redis最新的版本包
wget http://download.redis.io/releases/redis-4.0.2.tar.gz
(3)下载完成后,查看并解压
tar -zxvf redis-4.0.2.tar.gz
(4)进入redis-4.0.2目录,进行make编译(C)
cd redis-4.0.2
make
唰唰唰唰,直到最后完成编译
(5)编译完成后,直接install
make install
也是唰唰的(没有唰唰唰唰的),直到最后install完成
(6)切换到src目录,ls一下
redis-cli :连接某个节点,默认redis的端口号是 6379
redis-server:启动redis服务,后跟redis.conf配置文件,启动指定redis实例
redis-trib-rb :配置redis集群,添加,删除集群中的节点,以及其他命令操作
(7)启动redis服务,验证redis是否已经安装到位
redis-server
由于,我们尚未启动任何redis实例(ip+port),因此,redis-cli暂时使用不了,上述输入 Ctrl + C 退出当前可执行的会话
(8)启动redis的默认实例,端口号为6379
(1)mkdir 6379 && cp redis-4.0.2/redis.conf 6379/ ---> 创建6379 目录 + 复制redis.conf至该目录下
注意:后续我们还会在一台Linux虚拟机上模拟多个redis节点(缓存数据库),因此,我们需要把最原始的redis的配置文件redis.conf拷贝出来,单独进行配置,目录名称我们用数据库节点的端口号命名
(2)修改6379目录下面的redis.conf配置文件
需要修改和注意的几个地方:
A
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize no
把这个改为 yes,实例后台运行
daemonize yes
B
# Creating a pid file is best effort: if Redis is not able to create it
# nothing bad happens, the server will start and run normally.
pidfile /var/run/redis_6379.pid
这个地方是启动的实例进程名称,默认就是这个,知道一下,不用改
C
# Note: you can disable saving completely by commenting out all "save" lines.
#
# It is also possible to remove all the previously configured save
# points by adding a save directive with a single empty string argument
# like in the following example:
#
# save ""
save 900 1
save 300 10
save 60 10000
这个地方,是redis的持久化操作,就是将内存中的数据,定时save到磁盘,默认保存文件是dump.rdb(快照模式),当然也可以手动开启aof模式,二种持久化模式这里不做说明
这里不开启,为了演示后面的redis主从数据架构,注释掉
#save 900 1
#save 300 10
#save 60 10000
D
# 3) Replication is automatic and does not need user intervention. After a
# network partition slaves automatically try to reconnect to masters
# and resynchronize with them.
#
# slaveof
这个地方,是设置redis主从数据库的,了解就下,本篇不做修改(开启)
E
# In short... if you have slaves attached it is suggested that you set a lower
# limit for maxmemory so that there is some free RAM on the system for slave
# output buffers (but this is not needed if the policy is 'noeviction').
#
# maxmemory
这个地方是当前实例,在内存中存储的最大内存的容量,我们设置为100M(演示的话,绰绰有余),并开启(消除注释)
maxmemory 100m
其他地方不用改了(暂且这些就够用了),保存修改并退出:wq!
(3)开启6379实例
redis-server ./redis.conf
进程查看
ps -ef|grep redis
(4)连接6379实例,并测试redis缓存读写数据
以下操作,不涉及缓存数据的持久化(我们在配置文件里面关闭了默认快照持久化方式),因此,如果下面的实例宕掉了,之前我们在内存中设置的数据就会丢失,这个不用担心,下一篇,会讲到redis的主从/主从从数据架构,来实现数据的同步,这种同步自动会完成内存中的数据的持久化操作(保存到dumb.rdb文件中)
未完待续!