memcache介绍和应用场景

2024-06-19 17:48
文章标签 应用 介绍 场景 memcache

本文主要是介绍memcache介绍和应用场景,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

   Memcache是分布式缓存系统。通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
     Memcache是以守护进程方式运行于一个或多个服务中,随时会接收客户端的连接和操作。
     Memcached是一种无阻塞的socket通信方式服务,由于无阻塞通信,对内存读写速度非常之快。
     Memcached分服务器端和客户端。
 
 特点是:
       高性能:全部操作在内存中进行,存取是速度非常快
   分布式:一种多处理器的计算机系统,各处理器通过互连网络构成统一的系统。系统采用分布式计算结构,即把原来系统内中央处理器处理的任务分散给相应的处理器,
       各个处理器相互协调,共享系统的外设与软件。这样就加快了系统的处理速度,简化了主机的逻辑结构。
     memcache虽然称为“分布式”缓存服务器,但服务端并没有“分布式”功能,memcache集群之间不会相互通信。他的分布式功能完全是由客户端程序实现
    
 Memcached删除机制
        Memcached并没有过期监控,它是标记删除,只要内存没有被重复使用,即使过期了,数据也会存在于内存之中,
  只是在get时检测过期时间,如果当前时间大于有效期,就直接返回false。
  


 应用场景
  1、分布式应用。
    由于memcached本身基于分布式的系统,所以尤其适合大型的分布式系统。
  2、数据库前段缓存。
  3、服务器间数据共享。
     举例来讲,我们将网站的登录系统、查询系统拆分为两个应用,放在不同的服务器上,并进行集群,
     那这个时候用户登录后,登录信息如何从登录系统服务器同步到查询系统服务器呢?
  这时候,我们便可以使用memcached,登录系统将登录信息缓存起来,查询系统便可以获得登录信息,就像获取本地信息一样。
    
 不适合应用的场景:
  1、缓存的数据量比较小。
  2、缓存的数据需要持久化。
  
用途
  1、提高系统的并发能力
  2、减轻数据库的负担
  这两种用途其实非常容易理解。由于memcached高性能,所以可以同时服务于更多的连接,大大提高了系统的并发处理的能力。
  另外,memcached通常部署在业务逻辑层(前台应用)和存储层(主指数据库)之间,作为数据库和前台应用的数据缓冲,因此可以快速的响应前端的请求,减少对数据库的访问。


  
memcached处理并发
 memcached 提供了gets和cas命令,乐观锁的方式实现

  
 memache使用:
  .Memcached默认服务端口是11211
  

<?phpheader("Content-type:text/html;charset=utf-8");//创建Memcache对象$mem = newMemcache(); //连接Memcache服务器if(!$mem--->connect("127.0.0.1")) {echo"连接Memcache服务器失败!";}//设置,'myword'参数代表键key,'hello world'代表存放的值,MEMCACHE_COMPRESSED代表压缩内容,50代表存放时间,单位秒if($mem->set('myword','hello world',MEMCACHE_COMPRESSED,50)){echo"设置值成功!";}//读取键myword值$value = $mem->get('myword');//更新键值$mem->replace('myword','hello everybody!');//删除键myword值$mem->delete('myword');//关闭$mem->close();?>

  多个memcached服务器设置,其实就比一个memcached服务器改变一点点,就是把多个memcached的服务器通过方法addserver添加到连接池中,这样设置完后,crud操作时,内部就会通过相应算法均衡连接相应服务器并执行相应操作中。
 

 $mem = newMemcache();//添加多台memcached服务器$mem--->addserver('192.168.0.1',11211);$mem->addserver('192.168.0.2',11211);$mem->addserver('192.168.0.3',11211);$mem->addserver('192.168.0.4',11211);

 

这篇关于memcache介绍和应用场景的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1075717

相关文章

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

Python中yield的用法和实际应用示例

《Python中yield的用法和实际应用示例》在Python中,yield关键字主要用于生成器函数(generatorfunctions)中,其目的是使函数能够像迭代器一样工作,即可以被遍历,但不会... 目录python中yield的用法详解一、引言二、yield的基本用法1、yield与生成器2、yi

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Spring Security 前后端分离场景下的会话并发管理

《SpringSecurity前后端分离场景下的会话并发管理》本文介绍了在前后端分离架构下实现SpringSecurity会话并发管理的问题,传统Web开发中只需简单配置sessionManage... 目录背景分析传统 web 开发中的 sessionManagement 入口ConcurrentSess

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.