1.安装



cd /usr/src   #进入下载目录(这个目录自己定)
yum install -y wget gcc make tcl  #安装依赖
wget http://download.redis.io/releases/redis-3.2.1.tar.gz  #下载源码包
tar -zxvf redis-3.2.1.tar.gz    #解压
cd redis-3.2.1  #进入redis目录
make && make test  #编译与测试
make install PREFIX=/usr/local/redis   #PREFIX安装指定目录



2.启动

1.单机启动



./bin/redis-server  #启动redis服务



2.哨兵模式
1.在/usr/local/ 下新建一个目录redis-sentinel,然后创建三个文件夹



mkdir /usr/local/redis-sentinel 
mkdir /usr/local/redis-sentinel/{8333,8334,8335,8336}



2.将redis安装目录下配置文件reids.conf拷贝8333,8334文件夹下,将其中一些配置自定义如下(其他配置不变):



#Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
            daemonize yes
            #当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定
            pidfile /var/run/redis_8333.pid
            #指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字
            port 8333
            #绑定的主机地址(如虚拟机上设置了两个网卡两个Ip:134,133.若bind了134的ip,则通过133不能访问到该redis服务)
            bind 192.168.37.134
            #日志记录方式,默认为标准输出,日志输出至指定日志文件
            logfile "./redis-8333.log"
            #指定本地数据库存放目录
            dir "/usr/local/redis-sentinel/8333"
            #当master服务设置了密码保护时,slave服务连接master的密码
            masterauth admin.123
            #设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭
            requirepass admin.123
            #指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。
            #因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no
            appendonly yes
            #设置当本机为slave服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步(本例以8333端口的为主,8334为从,故以下只需在8334配置中即可)
            slaveof 192.168.37.134 8333



3.将redis安装目录下的sentinel.conf拷贝8335,8336文件夹下,其自定义配置如下:



#============================================自定义配置开始========================================
            #Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
            daemonize yes
            #指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字
            port 8336
            #指定本地数据库存放目录
            dir "/usr/local/redis-sentinel/8336"
            #日志记录方式,默认为标准输出,日志输出至指定日志文件
            logfile "./sentinel.log"
            #指定别名  主节点地址  端口  哨兵个数(有几个哨兵监控到主节点宕机执行转移)
            sentinel monitor mymaster 193.168.37.134 8333 1
            #如果哨兵3s内没有收到主节点的心跳,哨兵就认为主节点宕机了,默认是30秒  
            sentinel down-after-milliseconds mymaster 3000
            #选举出新的主节点之后,可以同时连接从节点的个数
            sentinel parallel-syncs mymaster 1
            #如果10秒后,master仍没活过来,则启动failover,默认180s  
            sentinel failover-timeout mymaster 10000
            #配置连接redis主节点密码  
            sentinel auth-pass mymaster admin.1231
            #============================================自定义配置结束========================================



4.启动redis服务(在make安装目录中bin文件夹下)
4.1.先启动主从



[root@localhost bin]# redis-server /usr/local/redis-sentinel/8333/redis-8333.conf 
                [root@localhost bin]# redis-server /usr/local/redis-sentinel/8334/redis-8334.conf
                查看服务信息
                [root@localhost bin]# redis-cli -h 192.168.37.134 -p 8333 -a admin.1231
                192.168.37.134:8333> info replication
                # Replication
                role:master
                connected_slaves:1
                slave0:ip=192.168.37.134,port=8334,state=online,offset=57,lag=0
                master_repl_offset:57
                repl_backlog_active:1
                repl_backlog_size:1048576
                repl_backlog_first_byte_offset:2
                repl_backlog_histlen:56



4.2.启动哨兵



[root@localhost bin]# redis-sentinel /usr/local/redis-sentinel/8335/redis-8335.conf 
                [root@localhost bin]# redis-sentinel /usr/local/redis-sentinel/8336/redis-8336.conf



4.3.查看进程



[root@localhost bin]# ps -ef | grep redis
                root      26149      1  0 14:58 ?        00:00:01 redis-server 192.168.37.134:8333
                root      26153      1  0 14:58 ?        00:00:01 redis-server 192.168.37.134:8334
                root      26188      1  0 15:04 ?        00:00:02 redis-sentinel *:8335 [sentinel]
                root      26230      1  0 15:06 ?        00:00:02 redis-sentinel *:8336 [sentinel]
                root      26281   1382  0 15:26 pts/0    00:00:00 grep --color=auto redis



启动后若外网访问不了

1.查看防火墙是否放开端口
那怎么开启一个端口呢
添加

firewall-cmd --zone=public --add-port=8333/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
 重新载入
 firewall-cmd --reload
 查看
 firewall-cmd --zone=public --query-port=8333/tcp
 删除
 firewall-cmd --zone=public --remove-port=8333/tcp --permanent
 2.配置中bind是否错误
 3.密码是否错误