百万PV架构中redis缓存服务群集部署

redis简介

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

案例环境

主机 IP地址 角色
Centos7 192.168.71.134 redis-master
Centos7 192.168.71.129 redis-slave

搭建过程

1、主从安装redis
[[email protected] ~]# yum install epel-release -y
[[email protected] ~]# yum install redis -y
2、主服务器修改配置文件

[[email protected] ~]# vim /etc/redis.conf
bind 0.0.0.0           #监听任意端口

3、从服务器修改配置文件

[[email protected] ~]# vim /etc/redis.conf
bind 0.0.0.0           #监听任意端口
# slaveof <masterip> <masterport>
slaveof 192.168.71.128 6379    #指向主服务器的ip和端口

4、主从服务器开启服务

[[email protected] ~]# systemctl start redis


5、验证同步功能(记得关闭防火墙)

主服务器上登陆并写入内容
[[email protected] ~]# redis-cli -h 192.168.71.134 -p 6379
192.168.71.134:6379> set abc 111
OK
192.168.71.134:6379> get abc
"111"


从服务器登陆查看内容
[[email protected] ~]# redis-cli -h 192.168.71.129 -p 6379
192.168.71.129:6379> get abc
"111"

同步功能到这步算完成了,接下来搭建主从功能

6、主服务器主从设置

[[email protected] ~]# vim /etc/redis-sentinel.conf
17行 protected-mode no
69行 sentinel monitor mymaster 192.168.71.134 6379 1 #master的地址,端口,从服务器1台
98行 sentinel down-after-milliseconds mymaster 300 #设置切换时间

7、开启服务(从服务器不需要做任何配置,只需开启服务)

[[email protected] ~]# systemctl start redis-sentinel.service

8、主服务器上查看主从状态
[[email protected] ~]# redis-cli -h 192.168.71.134 -p 26379 info sentinel

9、宕掉一台redis,再次查看主从状态
[[email protected] ~]# systemctl stop redis

10、再次开启服务后master不会回到主服务上,再次宕掉从服务器即可

[email protected] ~]# systemctl stop redis   #从服务器宕掉redis
[[email protected] ~]# systemctl start redis  #主服务器开启redis
[[email protected] ~]# redis-cli -h 192.168.71.134 -p 26379 info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.71.134:6379,slaves=1,sentinels=3  

原文地址:http://blog.51cto.com/13760226/2312672

时间: 2024-10-14 14:52:04

百万PV架构中redis缓存服务群集部署的相关文章

日均百万PV架构第二弹(缓存时代来临)

上一弹中我们规划并搭建了基本的架构组成,当然此架构存在诸多问题,我们在接下来的章节中将不断 完善其功能特性,使之成为实至名归的百万PV架构站点   首先来对上一弹架构做基本的ab 并发100, 总量2000的测试,让我们对站点性能有所熟知,之后在之前的功能上我们添加多道 缓存对性能进行提升. (ps: 测试机器均为虚拟机环境 , 大约性能比主流服务器低 2.5 - 3.5 倍 , 测试参 数可做此对比评估) 按照规划,我们在salve3.king.com中添加两实例的varnish,在slave

为什么要用缓存服务器以及在 Java 中实现一个 redis 缓存服务

缓存服务的意义 为什么要使用缓存?说到底是为了提高系统的运行速度.将用户频繁访问的内容存放在离用户最近,访问速度最快的地方,提高用户的响应速度.一个 web 应用的简单结构如下图. web 应用典型架构 在这个结构中,用户的请求通过用户层来到业务层,业务层在从数据层获取数据,返回给用户层.在用户量小,数据量不太大的情况下,这个系统运行得很顺畅.但是随着用户量越来越大,数据库中的数据越来越多,系统的用户响应速度就越来越慢.系统的瓶颈一般都在数据库访问上.这个时候可能会将上面的架构改成下面的来缓解数

百万PV架构搭建详解

百万PV架构 ●先了解一下什么是PVPV(page view)即页面浏览量,通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标.网页浏览数是评价网站流量最常用的指标之一,简称为PV.监测网站PV的变化趋势和分析其变化原因是很多站长定期要做的工作. Page Views中的Page一般是指普通的html网页,也包含php.jsp等动态产生的html内容.来自浏览器的一次html内容请求会被看作一个PV,逐渐累计成为PV总数. ●环境及组件介绍 操作系统 IP地址 角色 web组件 Cent

日均百万PV架构第三弹(分布内容为王)

接续接上篇 缓存时代来临 为蓝本,继续改造我们的百万级站点架构,这次我们 拿之前存储静态内容的 nfs 开刀,众所周知 nfs 的多台集群节点下可能由于多重 原因(磁盘io , 网络带宽, 并发场景),不适合做文件共享系统的基础结构. 互联网站点中,存在大量图片或其他静态内容,并且这些内容一般在1M之内,对于 海量小文件,我们将采用mogilefs分布式文件系统来完成.其中概念自行google. # mogilefs分布式文件系统工作流程 架构已经愈发复杂,我们需要从新梳理一下.从下表中应该很容

日均百万PV架构第四弹(分布式监控)

应该能更早出的第四弹,被虚拟机错误搅乱,迟迟没有上线,不得已将所有 节点用puppet完成上线,稍后整理第五弹(非你不可自动化)也即将上线 : ) zabbix简介    zabbix是基于Php的开源监控软件    基于多重数据采集 SNMP , Agent , Ping , Port    多重告警通知 Mail , Jabber , SMS    可以完成多种操作平台甚至于设备(route,switch,io)的监控工作    易于定制重用(模板机制,函数),甚至于二次开发    告警及时

Redis缓存服务部署

redis缓存服务部署

nginx的web缓存服务环境部署记录

web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输出内容给客户端,而不是向源服务器再次发送请求.Web缓存降低了内容源Web服务器,数据库的负载,减少了网络延迟,提高了用户访问的响应速度,增强了用户体验. web缓存服务器中,最著名的要数Squid Cache(简称为Squid),Squid是一个流浪的自由软件的代理服务器和Web缓存服务器.---

【高并发架构】Redis缓存高并发之-主从架构

Redis主从架构 到目前为止,Redis Cluster 能实现很好的性能,但如果只是缓存几个G的数据,那么单机Redis就足够了,但缓存主要用来读的,单机的QPS有一定的极限,一两万QPS一台应该没什么问题,但如果是几十万的QPS这类场景呢?Redis主从架构就非常合适. 主从架构主要是保证Redis的高并发性的,对于缓存来说,一般也都是用来支撑读高并发的.因此架构做成主从(master-slave)架构,一主多从,主负责写,并且将数据复制到其它的 slave 节点,从节点负责读.所有的读请

LAMP架构中Memcached缓存应用

什么是Memcached ? Memcached是一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,进而提升系统性能.Memcache多数情况是作为数据库的前端Cache来使用,因为它比数据库少了很多sql解析.磁盘操作等开销,而且使用内存来管理数据,所以它可以提供比直接读取数据库更好的性能. 缓存一般用来保存一些经常存取的对象或数据(例如,浏览器会把经常访问的网页缓存起来),通过缓存来存取对象或数据要比磁盘快很多.Memcache是一种内存缓存,把经常存取的对象或数据存在内存中,内存