热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

centos中安装安装Memcached完整示例

Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据.简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
工作原理:
①客户端第一次访问应用程序时,会到数据库(RDBMS)中取出数据,返回给客户端;同时也将取出的数据保存到memcached中。
② 第二次访问时,因为数据已经缓存,不不用去数据库查询了,直接从memcached取。

那么memcached的快速和高效率是如何体现出来的呢?我们都清楚,RDBMS是文件型的数据库,最终还是以文件的形式保存在磁盘上。而memcached则不一样,它是key:value关系型的数据库,是保存在内存中的。那么就不用我再做说明了,内存的读写速度要比磁盘的读写速度快得多,前者是后者的10的6次方倍。http://blog.rekfan.com/?p=172

下面进入正题:

首先,memcached是基于libevent的,所以确保你的系统已经装了libevent,libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。 memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。
由于memcached和libevent是由C编写的,所以首先确保你的系统安装了gcc,如果
没有安装,使用yum安装即可
命令: 
yum -y install gcc
yum -y install gcc

然后下载Libevent

然后上传centos到/usr/local,进行给予权限,然后解压
# tar xzvf libevent-2.0.21-stable.tar.gz ##解压
# cd libevent-2.0.21-stable
# ./configure --prefix=/usr
# make
# make install

然后下载 memcache 上传
# tar xzvf memcached-1.4.15.tar.gz
# cd memcached-1.4.15
# ./configure --with-libevent=/usr
# make
# make install


关于memcache启动的一些参数说明:
memcached命令参数解释:
-p           监听的端口
-l       连接的IP地址, 默认是本机
-d start          启动memcached 服务
-d restart        重起memcached 服务
-d stop|shutdown  关闭正在运行的memcached 服务
-d install        安装memcached 服务
-d uninstall      卸载memcached 服务
-u      以的身份运行 (仅在以root运行的时候有效)
-m           最大内存使用,单位MB。默认64MB
-M                内存耗尽时返回错误,而不是删除项
-c           最大同时连接数,默认是1024
-f        块大小增长因子,默认是1.25
-n         最小分配空间,key+value+flags默认是48
-h                显示帮助
然后执行命令启动memcached
#/usr/local/bin/memcached -d -m 1024 -u root -p 11211 -P /tmp/memcached.pid
然后就可以使用telnet,来测试memcache的连接状态,
如果没有安装telnet服务,可以执行
yum install telnet-server
安装服务
yum install telnet
安装命令
然后编辑vi /etc/xinetd.d/telnet 文件,激活telnet,默认是禁用的,截图如下:


然后重启服务,执行命令 service xinetd restart
然后就可以测试memcached的连接,执行命令
telnet 127.0.0.1 11211
输入stats,会输出memcache的一些连接信息,包括PID
如果需要退出,则执行quit命令即可,截图如下:


退出telnet,执行quit命令即可,上图所示的memcached进程ID,很重要,如果我们需要关闭memcached服务时,就可以执行命令,kill -9 进程号 即可。


在使用java代码测试前先禁用防火墙 service iptables stop


package com.able.java;

import java.net.InetSocketAddress;

import net.spy.memcached.MemcachedClient;

import org.junit.Test;

public class MemcacheTest {

@Test
public void test() throws Exception{
MemcachedClient memcachedClient=new MemcachedClient(new InetSocketAddress("192.168.40.234",11211));
memcachedClient.set("test", 60,"宇智波鼬" );
Object object=memcachedClient.get("test");
System.out.println(object.toString());
}
}
2015-03-16 17:00:14.153 INFO net.spy.memcached.MemcachedConnection:  Added {QA sa=/192.168.40.234:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2015-03-16 17:00:14.153 INFO net.spy.memcached.MemcachedConnection:  Connection state changed for sun.nio.ch.SelectionKeyImpl@5fdba6f9
宇智波鼬











推荐阅读
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • http:simple-is-better.comnews1047Firefly是免费、开源、稳定、快速扩展、能“热更新”的分布式游戏服务器端框架,采用Python编 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 代理模式的详细介绍及应用场景
    代理模式是一种在软件开发中常用的设计模式,通过在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象进行访问,从而简化系统的复杂性。代理模式可以根据不同的使用目的分为远程代理、虚拟代理、Copy-on-Write代理、保护代理、防火墙代理、智能引用代理和Cache代理等几种。本文将详细介绍代理模式的原理和应用场景。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 旁路|发生_Day749.旁路缓存:Redis是如何工作的Redis 核心技术与实战
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Day749.旁路缓存:Redis是如何工作的-Redis核心技术与实战相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 容器管理与容器监控influxDB
    容器管理与容器监控-influxDB什么是influxDBinfluxDB安装(1)下载镜像(2)创建容器(3 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • 14亿人的大项目,腾讯云数据库拿下!
    全国人 ... [详细]
  • java线程池的实现原理源码分析
    这篇文章主要介绍“java线程池的实现原理源码分析”,在日常操作中,相信很多人在java线程池的实现原理源码分析问题上存在疑惑,小编查阅了各式资 ... [详细]
author-avatar
小鱼2502907687
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有