• memcached介绍及基本使用


    一:概念

      memcached是LiveJournal旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。现在已成为mixi,hatena,facebook,Vox,LiveJournal等众多服务中 提高Web应用扩展性的重要因素。许多web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大,访问的集中,就会出现RDBMS的负加重,数据库响应恶化,网站显示延迟等重大影响。这是就该memcached大显身手了。memcached是高性能的分布式内存缓存服务器。一般的使用目的是:通过缓存数据库查询结果,减少数据库访问次数,以提高动态web应用的速度,提高可扩展性。

      下面这张示意图会更好的展示memcached的大体工作流程:

      

    二:适用场合

      1.分布式应用。由于memcached本身是基于分布式的系统,所以尤其适合大型的分布式系统。

      2.数据库缓存。数据库往往是网站系统的瓶颈。数据库的大量并发访问,常常造成网站内存溢出。当然我们也可以使用Hibernate的缓存机制。但memcached是基于分布式的,并可独立与网站应用本身,所以更适合大型网站进行应用的额拆分。

      3.服务器间数据共享。举例来讲,我们将网站的登录系统,查询系统拆分为两个应用,放在不同的服务器上,并进行集群,那这个时候用户登录后,登录信息如何从登录系统服务器同步到查询服务器呢?这个时候,我们便可以使用memcached,登录系统后将登录信息缓存起来,查询系统便可以获得登录信息,就像获取本地信息一样。

    三:不使用场合

      那些不需要“分布”的,不需要共享的,或者干脆规模小到只有一台服务器的应用,memcached不会带来任何好处,相反还会拖慢系统效率,因为网络连接同样需要资源。

    四:安装(即服务端)

      这里介绍windows环境的安装。

      1.下载memcache的windows稳定版,解压放某个盘下面,比如在c:memcached。

      2.在cmd下输入 'c:memcachedmemcached.exe -d install' 安装。

      3.再输入: 'c:memcachedmemcached.exe -d start' 启动。

      以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。

    五:客户端

      memcached本身是使用C开发的,客户端可以是php,C#,或者Java。我是做Java的,所以这里只介绍基于Java的客户端。

    六:范例

      1.加载commons-pool-1.5.6.jar、java_memcached-release_2.6.6.jar、slf4j-api-1.6.1.jar、slf4j-simple-1.6.1.jar

      2.创建memcached工具类:

      

      

      3.创建需要缓存的对象

      

      

      4.创建测试用例

      

      总结:在第二步的时候,我们可以看到是设置一些配置信息和封装一下memcached的存值取值的方法。设置配置信息这块其实可以写成配置文件的,比如.xml文件或.properties文件。这样灵活性就高很多。然后需要注意的几点:第一,memcached是在服务器端的内存中缓存对象的,不是缓存或硬盘;第二,memcached的pool可以连接多个server,String[] servers = {"10.20.185.12:11001","10.20.185.25:11001"};第三,Integer[] weights = {3,7}该配置表示30%的缓存放在第一台服务器,70%的将放在第二台服务器,这样便可以充分利用不同服务器的内存了。

  • 相关阅读:
    一道打印的面试题
    Quartz使用总结
    子类和父类之间的静态代码块、静态方法、非静态代码块、构造函数之间的执行关系
    springboot使用 @EnableScheduling、@Scheduled开启定时任务
    springboot的Interceptor、Filter、Listener及注册
    ConcurrentHashMap 的工作原理及代码实现
    为什么Hashtable ConcurrentHashmap不支持key或者value为null
    Android 通过Java代码生成创建界面。动态生成View,动态设置View属性。addRules详解
    Android 自定义title 之Action Bar
    Android常用控件之GridView与ExpandableListView的用法
  • 原文地址:https://www.cnblogs.com/vanl/p/5993630.html
Copyright © 2020-2023  润新知