search
HomeDatabaseMysql Tutorial Repcached实现Memcached主从复制功能

Repcached实现Memcached主从复制功能工作原理repcached实现了memcached复制的功能,它是一个单master单slave的方案,但master/slave都是可读写的,而且可以相互

Repcached实现Memcached主从复制功能



工作原理


repcached实现了memcached复制的功能,它是一个单master单slave的方案,但master/slave都是可读写的,而且可以相互同步,如果master坏掉slave侦测到连接断了,它会自动listen而成为master,这时坏掉的master只能启用为slave,它们之间互换角色,才能保持复制功能,换句话说,master没有抢占功能;而如果slave坏掉,master也会侦测到连接断,它就会重新listen等待新的slave加入。

 

应用场景


用memcached做session共享或其它服务时会存在memcached的单点故障,如果memcached宕机,那么整个系统用户无法登陆(session)。

基于这种情况,采用repcached做memcached的主从冗余。

 

Repcached下载地址


 

Repcached安装方式


Repcached有两种安装方式:

    1.补丁版本安装  
    先安装相应版本的memcached,,然后对应版本的Repcached补丁。

    2.整合版本安装  
    直接安装整合版本的memcached

 

方式一:补丁版本安装

1. 安装Memcache,相关安装方法可以参见博文:  

2. 下载对应的repcached版本补丁安装文件:  
假设安装的memcahced版本为1.2.8,下载针对该版本最新的补丁:    

wget      gzip -cd ../repcached-2.2.1-1.2.8.patch.gz | patch -p1     ./configure --enable-replication     make && make install

 

方式二:整合版本安装

1. 安装libevent:  

cd /tmp     wget      tar zxvf libevent-2.0.22-stable.tar.gz     cd libevent-2.0.22-stable     ./configure --prefix=/usr/local/lib     make && make install

2. 将libevent的库文件添加到动态库中:  

vi /etc/ld.so.conf

 
在最后添加如下行:    
/usr/local/lib //此处为要添加的libevent库目录    
重新加载动态lib库    

ldconfig

   
注意:如果无此步骤,在启动memcached时,会提示看不到libevent的库文件。

3. 测试libevent是否安装成功:  

ls -al /usr/lib | grep libevent-

4. 创建启动帐号:  

groupadd memcached     useradd -g memcached memcached

5. 创建PID进程目录并修改所有者:  

mkdir /var/run/memcached     chown -R memcached.memcached /var/run/memcached

6. 安装整合memcached-repcached包:  

cd /tmp     wget      cp memcached-1.2.8-repcached-2.2.1.tar.gz /usr/local     cd /usr/local     tar zxvf memcached-1.2.8-repcached-2.2.1.tar.gz     mv memcached-1.2.8-repcached-2.2.1 memcached     cd memcached     ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/lib --enable-replication --enable-64bit

 
注意:默认memcached单个进程只支持到2G内存,需要更大内存支持的话,需要打开64位支持,编译的时候加参数:    
--enable-64bit

  

make && make install

  
提示编译出错:    

make all-recursive     make[1]: Entering directory `/usr/local/memcached'     Making all in doc     make[2]: Entering directory `/usr/local/memcached/doc'     make[2]: Nothing to be done for `all'.     make[2]: Leaving directory `/usr/local/memcached/doc'     make[2]: Entering directory `/usr/local/memcached'     gcc -DHAVE_CONFIG_H -I. -DNDEBUG -m64 -g -O2 -MT memcached-memcached.o -MD      MP -MF .deps/memcached-memcached.Tpo -c -o memcached-memcached.o `test -f      memcached.c' || echo './'`memcached.c     memcached.c: In function ‘add_iov’:     memcached.c:697: error: ‘IOV_MAX’ undeclared (first use in this function)     memcached.c:697: error: (Each undeclared identifier is reported only once     memcached.c:697: error: for each function it appears in.)     make[2]: *** [memcached-memcached.o] Error 1     make[2]: Leaving directory `/usr/local/memcached'     make[1]: *** [all-recursive] Error 1     make[1]: Leaving directory `/usr/local/memcached'     make: *** [all] Error 2

  
解决方案:    

vi memcached.c
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Memcached缓存技术对于PHP中的Session处理的优化Memcached缓存技术对于PHP中的Session处理的优化May 16, 2023 am 08:41 AM

Memcached是一种常用的缓存技术,它可以使Web应用程序的性能得到很大的提升。在PHP中,常用的Session处理方式是将Session文件存放在服务器的硬盘上。但是,这种方式并不是最优的,因为服务器的硬盘会成为性能瓶颈之一。而使用Memcached缓存技术可以对PHP中的Session处理进行优化,提高Web应用程序的性能。PHP中的Session处

PHP8.0中的缓存库:MemcachedPHP8.0中的缓存库:MemcachedMay 14, 2023 am 08:16 AM

PHP8.0中的缓存库:Memcached随着互联网的快速发展,现代应用程序需要高效可靠的缓存技术来提高性能和处理大量数据。由于PHP的流行和开源特性,PHP缓存库已经成为了Web开发社区的一个必备工具。Memcached是一种广泛使用的开源高速内存缓存系统,它能处理数百万个同时连接的缓存请求,可以用于许多不同类型的应用程序,例如社交网络、在线

PHP与Memcached数据库备份与恢复PHP与Memcached数据库备份与恢复May 15, 2023 pm 09:12 PM

随着互联网的快速发展,大规模MySQL数据库备份和恢复成为各大企业和网站必备的技能之一。而随着Memcached的广泛应用,如何备份和恢复Memcached也成为了一个重要的问题。PHP作为Web开发的主力语言之一,在处理备份和恢复MySQL和Memcached上拥有独特的优势和技巧。本文将详细介绍PHP处理MySQL和Memcached备份与恢复的实现方法

使用PHP和Memcached进行缓存管理使用PHP和Memcached进行缓存管理May 23, 2023 pm 02:21 PM

随着网络应用的不断增加和数据量的不断膨胀,数据的读写效率成为影响应用性能的重要因素之一。而缓存技术的应用则可以很好地解决这个问题。在PHP应用中,Memcached是最常用的缓存服务器。Memcached是一个高性能的分布式内存对象缓存系统,可以将常用的数据存储在内存中,提高数据检索的效率。本文将介绍如何使用PHP和Memcached进行缓存管理,以及如何优

利用Memcached缓存技术对于PHP中的音视频播放进行优化利用Memcached缓存技术对于PHP中的音视频播放进行优化May 17, 2023 pm 04:01 PM

随着互联网技术的不断发展,音视频资源已经成为了互联网上非常重要的一种内容形式,而PHP作为网络开发中使用最广泛的语言之一,也在不断地应用于视频和音频播放领域。然而,随着音视频网站的用户日益增加,许多网站已经发现了一个问题:在高并发的情况下,PHP对于音视频的处理速度明显变缓,会导致无法及时播放或者播放卡顿等问题。为了解决这个问题,Memcached缓存技术应

PHP与Memcached性能监控PHP与Memcached性能监控May 15, 2023 pm 09:51 PM

随着现代互联网应用的快速发展,用户体验对于一个应用的成功至关重要。如何保证应用的高性能和高可用性,成为了开发人员需要解决的重要问题之一。PHP作为一种广泛应用的编程语言之一,它的性能监控和优化也是非常重要的。Memcached是一个高性能、分布式的内存对象缓存系统,可以帮助应用提高性能和扩展性。本文将介绍如何使用PHP和Memcached实现性能监控的方法。

PHP实现Memcached数据库集群的方法PHP实现Memcached数据库集群的方法May 15, 2023 pm 03:31 PM

随着互联网应用的快速发展,数据存储和处理变得越来越庞大和复杂。在这样的背景下,Memcached作为一款高性能、轻量级的分布式内存缓存系统,逐渐成为互联网应用领域中不可或缺的一部分。在PHP语言中,Memcached可以通过扩展内置的Memcached类实现与Memcached服务器的交互,而在实际生产环境中,我们需要通过搭建Memcached数据库集群来保

使用宝塔面板进行Redis、Memcached等缓存服务器的部署使用宝塔面板进行Redis、Memcached等缓存服务器的部署Jun 21, 2023 am 09:56 AM

随着互联网的发展,缓存技术在Web开发中扮演着越来越重要的角色。Redis和Memcached作为两种流行的缓存服务器,被广泛应用于各种Web应用开发中。然而,对于不熟悉Linux系统的开发人员来说,安装和配置这些缓存服务器可能会带来一些麻烦。但是,在宝塔面板的帮助下,这一过程将变得相当简单。一、什么是宝塔面板?宝塔面板是一款Linux服务器管理面板,它可以

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment