1.1.1redis简介

Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志 型、 Key-Value数据库

1.1.2redis常见使用场景

1.会话缓存(Session Cache

最常用的一种使用Redis的情景是会话缓存(session cache)。用Redis缓存会话比其他存储(如Memcached)的优势在于:Redis提供持久化。当维护一个不是严格要求一致性的缓存时,如果用户的购物车信息全部丢失,大部分人都会不高兴的,现在,他们还会这样吗?

幸运的是,随着 Redis 这些年的改进,很容易找到怎么恰当的使用Redis来缓存会话的文档。甚至广为人知的商业平台Magento也提供Redis的插件。

2.全页缓存(FPC

除基本的会话token之外,Redis还提供很简便的FPC平台。回到一致性问题,即使重启了Redis实例,因为有磁盘的持久化,用户也不会看到页面加载速度的下降,这是一个极大改进,类似PHP本地FPC。

再次以Magento为例,Magento提供一个插件来使用Redis作为全页缓存后端。

此外,对WordPress的用户来说,Pantheon有一个非常好的插件  wp-redis,这个插件能帮助你以最快速度加载你曾浏览过的页面。

3.队列

Reids在内存存储引擎领域的一大优点是提供 list 和 set 操作,这使得Redis能作为一个很好的消息队列平台来使用。Redis作为队列使用的操作,就类似于本地程序语言(如Python)对 list 的 push/pop 操作。

如果你快速的在Google中搜索“Redis queues”,你马上就能找到大量的开源项目,这些项目的目的就是利用Redis创建非常好的后端工具,以满足各种队列需求。例如,Celery有一个后台就是使用Redis作为broker,你可以从这里去查看。

1.1.4 redis版本

redis版本:2.8.6

操作系统centos6.5

2.0.0 单机模式安装

2.1.1软件下载

wget http://download.redis.io/releases/redis-2.8.6.tar.gz

2.1.2安装脚本

以上每台机器分别按照单机版安装redis执行脚本redis_install.sh

脚本如下

#!/bin/bash

yum -y install gcc make tcl;

cp redis-2.8.6.tar.gz /usr/local/redis-2.8.6.tar.gz;

cd /usr/local/;

tar -xvf redis-2.8.6.tar.gz;

cd redis-2.8.6;

make;

make test;

mkdir  -p  /bestpayserver/data/redis;

mkdir  -p  /bestpayserver/log/;

sed -i 's/^daemonize no/daemonize yes/g'  redis.conf

sed -i 's/^port 6379/port 16379/g' redis.conf

sed -i 's/^logfile ""/logfile \/bestpayserver\/log\/redis.log/g' redis.conf

sed -i 's/^dir .\//dir \/bestpayserver\/data\/redis/g' redis.conf

  

2.1.3 软件启动

   # cd  /usr/local/redis-2.8.6/src

   # ./redis-server  /usr/local/redis-2.8.6/redis.conf

  

2.1.4 查看redis进程

# ps -aux |grep redis

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

root     14134  0.0  0.9 137348  9544 ?        Ssl  10:18   0:18 ./redis-server *:16379                         

root     25042  0.0  0.0 103256   828 pts/0    S+   20:35   0:00 grep redis

  

2.1.5 命令测试

进入客户端:

         # cd  /usr/local/redis-2.8.6/src

         # ./redis-cli –p 16379

         set 测试

         redis 127.0.0.1:16379> set hello world

         OK <---成功

         get 测试

         redis 127.0.0.1:16379> get hello

         "world" <---成功

  

2.2 集群监控搭建

2.2.1. 机器准备

主master:192.168.161.233

从1slave:192.168.161.234

从2slave:192.168.161.235

监控机sentinel:192.168.161.236

2.2.2拓扑图

2.2.3 slave 配置

# cd  /usr/local/redis-2.8.6
# echo "slaveof 192.168.161.233 16379" >> redis.conf

  

Master上查看集群状态

[root@centos01 src]# ./redis-cli -h 192.168.161.233 -p 16379 info Replicatio

Slave上查看集群状态

[root@centos03 src]# ./redis-cli -h 192.168.161.235 -p 16379 info Replication

2.2.4sentinel监控机配置

# cd  /usr/local/redis-2.8.6
# vim sentinel.conf

  

修改一下配置

sentinel monitor mymaster  192.168.161.233  16379  1

  

其中mymaster为自定义的master名称,后面为master的IP,端口号,最后面的1表示有一个sentinel监控。

Redis主从系统,除了做数据冗余,开可以做高可用性灾备。Reids提供了Sentinel工具来监控各Master的状态,如果Master异常,则会做主从切换,将slave作为master,将master作为slave。主从切换之后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变。master_redis.conf中会多了一句slaveof的配置,sentinel.conf的监控目标也随之调换,这一点要注意。

启动监控机:

#./redis-server /usr/local/redis-2.8.6/sentinel.conf --sentinel &

效果如下:

在master上查看监控状态

# ./redis-cli -h 192.168.161.236 -p 26379 info Sentinel

  

效果如下:

在master  用redis客户断 上查看监控机上 slave状态

# ./redis-cli -h 192.168.161.236 -p 26379  sentinel slaves mymaster

3.0.0总结

3.0.1 主要功能

Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自懂切换。

它的主要功能有以下几点

不时地监控redis是否按照预期良好地运行;

如果发现某个redis节点运行出现状况,能够通知另外一个进程(例如它的客户端);

能够进行自动切换。当一个master节点不可用时,能够选举出master的多个slave(如果有超过一个slave的话)中的一个来作为新的master,其它的slave节点会将它所追随的master的地址改为被提升为master的slave的新地址

3.0.2 Sentinel支持集群

很显然,只使用单个sentinel进程来监控redis集群是不可靠的,当sentinel进程宕掉后(sentinel本身也有单点问题,single-point-of-failure)整个集群系统将无法按照预期的方式运行。所以有必要将sentinel集群,这样有几个好处:

即使有一些sentinel进程宕掉了,依然可以进行redis集群的主备切换;

如果只有一个sentinel进程,如果这个进程运行出错,或者是网络堵塞,那么将无法实现redis集群的主备切换(单点问题);

如果有多个sentinel,redis的客户端可以随意地连接任意一个sentinel来获得关于redis集群中的信息。

Redis集群部署的更多相关文章

  1. Redis集群部署及命令

    一.简介 redis集群是一个无中心的分布式Redis存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用.可扩展等问题. redis集群提供了以下两个好处: 将数据自动切分(split) ...

  2. Redis集群部署-windows

    Redis集群部署-windows 前言 为了能体验一下部署Redis集群是一种怎么样的体验,所一边做一边写了这篇记录. 1.准备 从这里下载windows服务端 https://github.com ...

  3. Redis集群部署文档(Ubuntu15.10系统)

    Redis集群部署文档(Ubuntu15.10系统)(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如 ...

  4. Redis集群部署3.0

    我用的Mac的终端 ------------------------- 1.Redis简介 centos(5.4)  Redis是一个key-value存储系统.和Memcached类似,但是解决了断 ...

  5. Redis集群部署与维护

    Redis集群部署与维护 目录: 一. 集群架构 二. 集群部署 1. 创建redis-cluster目录 2. 编译redis 3. 编辑redis配置文件 4. 配置redis集群 5. redi ...

  6. 二进制redis集群部署

    二进制redis集群部署 〇.前言 无聊想学罢了 准备环境: 三台centos7 1C1GB即可 三个路相连的地址 主机 IP 节点-角色-实例(端口) redis1 172.16.106.128 M ...

  7. redis集群部署之codis 维护脚本

    搞了几天redis cluster codis 的部署安装,测试,架构优化,配合研发应用整合,这里记一些心得! 背景需求: 之前多个业务都在应用到redis库,各业务独立占用主从两台服务器,硬件资源利 ...

  8. redis集群部署那点事

    [CentOS]make cc Command not found,make: *** [adlist.o] Error 127” 参考:https://blog.csdn.net/wzygis/ar ...

  9. redis集群部署步骤

    1.yum 安装依赖 yum install gcc unzip wget 2.编译安装redis,编译安装的目的是源码包内包含了接下来创建redis集群所需要的 redis-trib.rb脚本 ma ...

  10. Redis 集群部署

    一.下载所需软件包 redis wget http://download.redis.io/releases/redis-4.0.6.tar.gz ruby wget https://cache.ru ...

随机推荐

  1. 最详细的Log4j使用教程

    日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录.在apache网站:jakarta.apache.org/log4j 可以免费下载到Log ...

  2. /etc/xinetd.conf 和 /etc/xinetd.d/*【新网络服务配置】

    http://blog.csdn.net/kelven2004/article/details/1701930 xinetd 是 inetd 的安全加强版,它内置了自己的 TCP wrapper, 可 ...

  3. red hat安装mysql二进制包

    数据包命名格式解释 mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz 黑色粗体表示为包名称 蓝色表示linux系统二进制包 红色表示构架     1.上传mysql- ...

  4. JQuery_元素样式操作

    元素样式操作包括了直接设置CSS 样式.增加CSS 类别.类别切换.删除类别这几种操作方法.而在整个jQuery 使用频率上来看,CSS 样式的操作也是极高的,所以需要重点掌握.  一.css()方法 ...

  5. linux学习网站分享

    http://www.zhihu.com/question/19895288 http://linux.vbird.org/ 两个linux学习的网页存起来,以后学习.

  6. AWS EC2首次使用VPS

    看到AWS有免费一年的试用期,就申请了一个账号.想搭建一个自己的网站.申请之前,你还需要有一张信用卡. 申请AWS账号,登陆控制台 进入AWS官网即可申请账号,进入控制台后,就可以新建一个AWS EC ...

  7. SQL SERVER 分区

    “索引要与其基表对齐,并不需要与基表参与相同的命名分区函数.但是,索引和基表的分区函数在实质上必须相同,即: 1) 分区函数的参数具有相同的数据类型: 2) 分区函数定义了相同数目的分区: 3) 分区 ...

  8. Python 修饰符

    def hello(fn):    def wrapper():        print "hello"        fn()        print "goodb ...

  9. 深入浅出Mybatis系列(十)---SQL执行流程分析(源码篇)

    最近太忙了,一直没时间继续更新博客,今天忙里偷闲继续我的Mybatis学习之旅.在前九篇中,介绍了mybatis的配置以及使用, 那么本篇将走进mybatis的源码,分析mybatis 的执行流程, ...

  10. uva 10817(状压dp)

    题意:就是有个学校要招老师.要让没门课至少有两个老师可以上.每个样样例先输入三个数字课程数量s,已经在任的老师数量,和应聘的老师数量.已经在任的一定要聘请. 思路是参考了刘汝佳书上的,关键如何状压. ...