首页 数据库 mysql教程 Repcached实现Memcached主从复制功能

Repcached实现Memcached主从复制功能

Jun 07, 2016 pm 04:08 PM
memcache 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
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1666
14
CakePHP 教程
1425
52
Laravel 教程
1327
25
PHP教程
1273
29
C# 教程
1252
24
如何使用PHP开发中的Memcache? 如何使用PHP开发中的Memcache? Nov 07, 2023 pm 12:49 PM

在Web开发中,我们经常需要使用缓存技术来提高网站的性能和响应速度。Memcache是一种流行的缓存技术,它可以缓存任何数据类型、支持高并发和高可用性。本文将介绍如何使用PHP开发中的Memcache,并提供具体代码示例。一、安装Memcache要使用Memcache,我们首先需要在服务器上安装Memcache扩展。在CentOS操作系统中,可以使用以下命令

如何使用Memcached缓存技术优化PHP应用程序CPU的使用率? 如何使用Memcached缓存技术优化PHP应用程序CPU的使用率? Jun 21, 2023 pm 05:07 PM

随着互联网的发展,PHP应用程序在互联网应用领域中变得越来越常见。但是,PHP应用程序的高并发访问会导致服务器的CPU使用率高,从而影响应用程序的性能。为了优化PHP应用程序的性能,Memcached缓存技术成为了一种很好的选择。本文将介绍如何使用Memcached缓存技术优化PHP应用程序CPU的使用率。Memcached缓存技术简介Memcached是一

PHP开发中如何使用Memcache进行高效的数据写入和查询? PHP开发中如何使用Memcache进行高效的数据写入和查询? Nov 07, 2023 pm 01:36 PM

PHP开发中如何使用Memcache进行高效的数据写入和查询?随着互联网应用的不断发展,对于系统性能的要求越来越高。在PHP开发中,为了提高系统的性能和响应速度,我们经常会使用各种缓存技术。而其中一个常用的缓存技术就是Memcache。Memcache是一种高性能的分布式内存对象缓存系统,可以用来缓存数据库查询结果、页面片段、会话数据等。通过将数据存储在内存

PHP开发中如何使用Memcache进行高效的数据读写操作? PHP开发中如何使用Memcache进行高效的数据读写操作? Nov 07, 2023 pm 03:48 PM

在PHP开发中,使用Memcache缓存系统可以大大提高数据读写的效率。Memcache是一种基于内存的缓存系统,它可以将数据缓存在内存中,避免频繁的读写数据库。本文将介绍如何在PHP中使用Memcache进行高效的数据读写操作,并提供具体的代码示例。一、安装和配置Memcache首先,需要在服务器上安装Memcache扩展。可以通过

PHP开发中如何使用Memcache进行分布式缓存? PHP开发中如何使用Memcache进行分布式缓存? Nov 07, 2023 pm 03:04 PM

随着Web应用程序的日益复杂,性能也成为了一个关键问题。在许多应用程序中,数据库查询是最耗费时间的操作之一。为了避免频繁地从数据库中读取数据,可以使用一个缓存系统,将经常读取的数据存储在内存中,以便快速的访问。在PHP开发中,使用Memcached进行分布式缓存是一个极为常见的做法,在本文中我们将介绍如何使用Memcached进行分布式缓存。什么是Memca

使用Go语言开发高性能的缓存系统 使用Go语言开发高性能的缓存系统 Nov 20, 2023 pm 03:08 PM

Go语言(又称Golang)一直以来以其高效的并发性能和优秀的性能而著称,因此非常适合用来开发高性能的缓存系统。本文将首先介绍为什么选择Go语言来开发缓存系统,然后将详细讨论如何利用Go语言的特性和优势来设计和实现高性能的缓存系统。为什么选择Go语言?Go语言具有以下特点,使其成为开发高性能缓存系统的理想选择:并发性能:Go语言内置的goroutine和ch

如何使用Memcache优化你的PHP应用中的数据存储操作? 如何使用Memcache优化你的PHP应用中的数据存储操作? Nov 08, 2023 pm 09:06 PM

如何使用Memcache优化你的PHP应用中的数据存储操作?在Web应用开发中,数据存储是一个至关重要的环节。而在PHP应用中,Memcache作为一种内存缓存系统,可以有效地提升数据存储和读取操作的效率。本文将介绍如何使用Memcache优化PHP应用中的数据存储操作,并附上具体的代码示例。第一步:安装Memcache扩展首先,你需要在PHP环境中安装Me

PHP开发中如何使用Memcache实现高效的数据缓存和排序操作? PHP开发中如何使用Memcache实现高效的数据缓存和排序操作? Nov 07, 2023 pm 02:28 PM

PHP是一种十分流行的编程语言,常用于服务器端的Web应用程序开发。随着Web应用程序用户规模的不断增长以及数据量的不断增大,高效的数据缓存和排序操作变得越来越重要。在这种情况下,Memcache是一种非常有用的工具。本文将介绍如何在PHP开发中使用Memcache实现高效的数据缓存和排序操作,并提供具体的代码示例。什么是Memcache?Memcache是

See all articles