分布式缓存系统之Memcached

简介:

简单介绍:

Memcache缓存数据库:减少数据库压力。高性能的分布式内存缓存服务器,用于动态Web应用,减少I/O,提高web访问速度以减轻数据库负载,以提高动态Web应用的速度、提高可扩展性。利用 Memcached 处理实时数据读写;MySQL是影响性能的最大瓶颈,可以用一台MySQL主库(只写)+多台MySQL辅库(只读)的主辅库集群来解决。另外,访问计数等实时性很强的东西用Memcache做缓存。基于c#语言写的调用libevent库事件来实现。

1. hash表结构:key、value存取方式

2. 工作方式:memcached是以守护程序方式运行一个或多个服务器中,随时会接受客户端(如:PHP)连接或操作。

Linux安装配置

一、Memcached安装

1
2
3
4
5
6
wget http: //memcached .googlecode.com /files/memcached-1 .4.10. tar .gz
yum  install  libevent libevent-devel  #安装Memcached组件
tar  zxvf memcached-1.4.10. tar .gz
cd  memcached-1.4.10
. /configure
make  &&  make  install

查看是否成功安装memcached

1
2
3
ls  -al  /usr/local/bin/mem *
-rwxr-xr-x 1 root root 137986 11?? 12 17:39  /usr/local/bin/memcached
-rwxr-xr-x 1 root root 140179 11?? 12 17:39  /usr/local/bin/memcached-debug

二、安装Memcache的PHP扩展

1
2
3
4
5
6
wget http: //pecl .php.net /get/memcache-3 .0.6.tgz
tar  zvxf memcache-3.0.6.tgz
cd  memcache-3.0.6
/usr/local/php/bin/phpize
. /configure  –with-php-config= /usr/local/php/bin/php-config
make  &&  make  installmemcache模块

使php加载memcache模块

1
2
vi  /etc/php .ini
extension=memcache.so

三、启动Memcache的服务器端:

1
/usr/local/bin/memcached  -d -m 128 -l 192.168.0.10 -p 11211

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB
-u是运行Memcache的用户
-l是监听的服务器IP地址
-p是设置Memcache监听的端口,最好是1024以上的端口
-c选项是最大运行的并发连接数,默认是1024,根据你服务器的负载量来设定
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

结束Memcache进程,执行:killall memcached


Windows安装配置

下载Memcached:http://ishare.iask.sina.com.cn/f/36094281.html

下载5.3php_memcache.dll:http://code.google.com/p/sirius/downloads/detail?name=php_memcache.dll&can=2&q=

一、Memcached和Memcache安装
1、 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached
2、 CMD页面下输入 ‘c:\memcached\memcached.exe -d install’ #安装memcached到系统服务
3、安装php_memcache.dll,下载对应的php版本
4、加载memcache客户端,在C:\winnt\php.ini 加入一行 ‘extension=php_memcache.dll’

5、启动memcached:

c:\memcached\memcached.exe -d –m 128 –l 127.0.0.1 –p 11211 start #默认端口:11211

二、Memcache环境测试

1.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
2.也可以运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。

1
2
3
4
5
6
7
< ?php
$mem = new Memcache;
$mem->connect(“127.0.0.1″, 11211);
$mem-> set (‘key’, ‘This is a  test !’, 0, 60);
$val = $mem->get(‘key’);
echo  $val;
?>

其他测试:telnet 192.168.0.202 11211或phpinfo()

常用命令:status、version、flush_all、quit、get、add、set



本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1290430,如需转载请自行联系原作者

相关文章
|
1月前
|
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
195 78
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
92 6
盘古分布式存储系统的稳定性实践
本文介绍了阿里云飞天盘古分布式存储系统的稳定性实践。盘古作为阿里云的核心组件,支撑了阿里巴巴集团的众多业务,确保数据高可靠性、系统高可用性和安全生产运维是其关键目标。文章详细探讨了数据不丢不错、系统高可用性的实现方法,以及通过故障演练、自动化发布和健康检查等手段保障生产安全。总结指出,稳定性是一项系统工程,需要持续迭代演进,盘古经过十年以上的线上锤炼,积累了丰富的实践经验。
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
31 7
分布式机器学习系统:设计原理、优化策略与实践经验
本文详细探讨了分布式机器学习系统的发展现状与挑战,重点分析了数据并行、模型并行等核心训练范式,以及参数服务器、优化器等关键组件的设计与实现。文章还深入讨论了混合精度训练、梯度累积、ZeRO优化器等高级特性,旨在提供一套全面的技术解决方案,以应对超大规模模型训练中的计算、存储及通信挑战。
84 4
|
3月前
|
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
105 15
Android 系统缓存扫描与清理方法分析
构建高可用性GraphRAG系统:分布式部署与容错机制
【10月更文挑战第28天】作为一名数据科学家和系统架构师,我在构建和维护大规模分布式系统方面有着丰富的经验。最近,我负责了一个基于GraphRAG(Graph Retrieval-Augmented Generation)模型的项目,该模型用于构建一个高可用性的问答系统。在这个过程中,我深刻体会到分布式部署和容错机制的重要性。本文将详细介绍如何在生产环境中构建一个高可用性的GraphRAG系统,包括分布式部署方案、负载均衡、故障检测与恢复机制等方面的内容。
160 4
构建高可用性GraphRAG系统:分布式部署与容错机制
【AI系统】分布式通信与 NVLink
进入大模型时代后,AI的核心转向大模型发展,训练这类模型需克服大量GPU资源及长时间的需求。面对单个GPU内存限制,跨多个GPU的分布式训练成为必要,这涉及到分布式通信和NVLink技术的应用。分布式通信允许多个节点协作完成任务,而NVLink则是一种高速、低延迟的通信技术,用于连接GPU或GPU与其它设备,以实现高性能计算。随着大模型的参数、数据规模扩大及算力需求增长,分布式并行策略,如数据并行和模型并行,变得至关重要。这些策略通过将模型或数据分割在多个GPU上处理,提高了训练效率。此外,NVLink和NVSwitch技术的持续演进,为GPU间的高效通信提供了更强的支持,推动了大模型训练的快
56 0
NServiceBus:打造企业级服务总线的利器——深度解析这一面向消息中间件如何革新分布式应用开发与提升系统可靠性
【10月更文挑战第9天】NServiceBus 是一个面向消息的中间件,专为构建分布式应用程序设计,特别适用于企业级服务总线(ESB)。它通过消息队列实现服务间的解耦,提高系统的可扩展性和容错性。在 .NET 生态中,NServiceBus 提供了强大的功能,支持多种传输方式如 RabbitMQ 和 Azure Service Bus。通过异步消息传递模式,各组件可以独立运作,即使某部分出现故障也不会影响整体系统。 示例代码展示了如何使用 NServiceBus 发送和接收消息,简化了系统的设计和维护。
82 3
消息队列系统中的确认机制在分布式系统中如何实现?
消息队列系统中的确认机制在分布式系统中如何实现?
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等