`
dawuafang
  • 浏览: 1191943 次
文章分类
社区版块
存档分类
最新评论

memcached 学习笔记

 
阅读更多

鸣谢:菜鸟教程

memcached

Memcached 是一套高性能的、分布式内存对象缓存系统。
注意,memcache不是数据库。

1 memcached

1.1 特点

a.协议简单
使用文本协议和二进制协议,协议简单,性能高效.

b.基于 libevent 的事件处理
libevent 是个程序库,它将 Linux 的 epoll、BSD 类操作系统的 kqueue 等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥 O(1)的性能。Memcached 使用这个 libevent 库,因此能在 Linux、BSD、Solaris 等操作系统上发挥其高性能。

c.内置内存存储方式
memcached并不是数据库,数据存储在memcache内置的内存存储空间中,由于数据存储在内存中,当重启memcache或者操作系统时,数据会被清空。
当内容容量达到指定值(启动时可通过-m 参数配置)之后,就基于 LRU(Least Recently Used,顾名思义:最近最少使用)算法自动删除不使用的缓存,不用担心,这个功能是可以配置的,Memcached 启动时通过“-M”参数可以禁止 LRU。不过,Memcached 本身是为缓存而设计的,建议开启 LRU。

1.2 不适应场景

a. 缓存对象的大小大于 1 MB, Memcached 本身就不是为了处理庞大的多媒体和巨大的二进制块而设计的,如果你任性,要存这么大的数据,可以自己修改源代码,它是开源的,不过请慎改;
b. key 的长度大于 250 字符(硬性要求);
c. 环境不允许运行 memcached 服务,如虚拟主机;
d. 应用运行在不安全的环境中,Memcached 未提供任何安全策略,仅仅通过 telnet 就可以访问到 memcached。数据安全越来越重要了,so,请把它放在防火墙后;
e. 业务需要的是持久化数据时请使用数据库。

2 linux下的安装与卸载

2.1 自动安装

根据linux的类别不同,安装memcache的方式也不同,下表为不同类别的linux自动安装 memcache的命令(libevent 和 Memcached 一起被安装,无需另行安装 libevent。)

命令 支持系统
sudo apt-get install memcached Ubuntu/Debian
yum install memcached Redhat/Fedora/Centos
portmaster databases/memcached FreeBSD

安装成功后,可以通过下边的命令确认

命令 功能
find / -name 'libevent*' | grep libevent 确认libevent
find / -name 'memcached*' | grep memcached 确认memcache

2.2 源码安装

步骤 命令 操作
1 wget http://memcached.org/latest 下载最新版本
2 tar -zxvf memcached-1.x.x.tar.gz 解压源码
3 cd memcached-1.x.x 进入目录
4 ./configure --prefix=/usr/local/memcached 配置
5 make && make test 编译
6 sudo make install 安装

2.3 卸载memcached

sudo apt-get --purge remove memcache

3 memcached运行

命令 操作 说明
memcached -h 命令帮助
memcached -d -m 256 -u root -l localhost -p 11210 -c 256 -P /tmp/memcached.pid 启动memcache
echo stats |nc 127.0.0.1 11211 查看memcached运行状态
ps -ef|grep memcached 查看memcached状态

启动参数:

参数 含义
-p 指定端口号(默认值:11211)
-U num UDP 监听端口 (默认值: 11211, 0 时关闭)
-s file 用于监听的 UNIX 套接字路径(禁用网络支持)
-a mask UNIX 套接字访问掩码,八进制数字(默认值:0700)
-l ip_addr 绑定地址 (默认:所有都允许,无论内外网或者本机更换 IP,
有安全隐患。若设置为 127.0.0.1 就只能本机访问)
-d 启动一个守护进程
-r 最大化核心文件限制
-u username 绑定使用指定用于运行进程 (只有 root 用户可以使用这个参数)
-m 指定最大使用内存大小(默认值:64 MB)
-M 内存耗尽时返回错误,而不是删除项
-t 线程数(默认值:4)
-c 最大同时连接数(默认是 1024)
-f 块大小增长因子(默认是 1.25)
-n bytes 最小分配空间,key+value+flags(默认值:48)
-C 禁用 CAS
-S 启用 sasl 安全验证功能,开启后,客户端需要提供用户名密码才能访问 memcached
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    memcached学习笔记

    【Memcached 学习笔记】 Memcached 是一种高性能的分布式内存对象缓存系统,主要用于减少数据库负载,提高应用程序的响应速度。它最初由 Danga Interactive 开发,为 LiveJournal.com 提供服务,处理高流量的动态...

    Memcached学习笔记

    ### Memcached学习笔记 #### 一、Memcached简介 Memcached是一种高性能的分布式内存对象缓存系统,主要用于在动态应用程序中减少数据库负载,提高访问速度。最初由Danga Interactive为优化LiveJournal.com网站的...

    Memcached学习笔记 — 第四部分:Memcached Java 客户端-gwhalin(1)-介绍及使用

    本篇学习笔记将重点介绍如何在Java环境中使用gwhalin提供的Memcached客户端进行开发。gwhalin的Memcached Java客户端是一个轻量级、高性能的库,使得Java开发者可以轻松地与Memcached服务器进行交互。 ### 一、...

    memcached-笔记资料

    【标题】"memcached-笔记资料"涉及到的核心知识点是分布式内存缓存系统——Memcached,它是一个高性能、轻量级的缓存解决方案,主要用于减轻数据库的负载,提高Web应用的性能。 【描述】"memcached-笔记资料"暗示了...

    Memcached 学习资料(memcached Memcached使用手册 Memcached源码剖析笔记)

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

    memcached-笔记资料.rar

    标题 "memcached-笔记资料.rar" 暗示了这个压缩包包含的是关于 memcached 的学习资料,这是一款广泛使用的分布式内存对象缓存系统。它主要用于减轻数据库的负载,通过在内存中存储常用数据,提高应用程序的响应速度...

    Redis全套学习笔记 (带章节目录) 完整版pdf

    本文是一篇关于Redis全套学习笔记的文章,主要介绍了Redis的基础知识、数据结构、持久化、集群、高可用、性能优化等方面的内容。通过本文的学习,读者可以全面掌握Redis的使用和应用,提高自己的技术水平和实践能力...

    韩顺平 PHP Memcached缓存技术资料源码笔记图解PPT_Ady

    【PHP Memcached缓存技术详解】...总结,韩顺平老师的PHP Memcached教程涵盖了从基础操作到高级特性的全面讲解,是学习和掌握这一技术的良好资源。通过实践这些知识,开发者可以有效地利用Memcached提升PHP应用的性能。

    NoSQL学习笔记

    在这个学习笔记中,我们将探讨NoSQL技术的优劣,并对常用的NoSQL技术进行对比和深入分析,同时也会涉及到Memcached数据缓冲技术。 首先,让我们来了解为什么我们需要使用非关系数据库。随着互联网web2.0网站的兴起...

    memcached教程.PPT.笔记.软件

    **Memcached教程详解** Memcached是一款高性能、分布式内存...结合PPT的视觉呈现和笔记的实践经验,学习效果会更佳。在实际工作中,灵活运用Memcached能显著提升应用性能,减轻数据库压力,为用户提供更快的响应速度。

    Nginx学习笔记

    【Nginx学习笔记】 Nginx是一款由俄罗斯开发者Igor Sysoev设计的高性能、高并发的Web服务器和反向代理服务器。最初应用于俄罗斯知名网站www.rambler.ru,随后开源,采用类BSD许可,使得全球用户都能使用。Nginx以其...

    Redis全套学习笔记(带章节目录)完整版pdf最新版本

    本文是一篇关于Redis全套学习笔记的文章,主要介绍了Redis的基础知识、数据结构、持久化、集群、高可用、性能优化等方面的内容。通过本文的学习,读者可以全面掌握Redis的使用和应用,提高自己的技术水平和实践能力...

    胡伟煌 Linux学习笔记

    Linux学习笔记的知识点总结,涵盖了Linux文件系统、Linux介绍、Linux文件权限、Shell简介、运维工具、Ansible的使用、Supervisor的使用、Confd的使用、NFS的使用、ceph-fuse的使用、Git、Nginx、Keepalived、TCP/IP...

    redis学习笔记

    ### Redis 学习笔记知识点概览 #### 一、Redis 简介及特性 - **Redis**(Remote Dictionary Server)是一种开源的、基于内存的数据结构存储系统,它支持多种数据结构,如字符串(strings)、散列(hashes)、列表...

    php学习笔记

    【PHP学习笔记】 在深入PHP之前,我们先回顾一下HTML的一些基础知识点。`&lt;hr&gt;`标签用于在HTML页面中创建一条水平线,起到分隔内容的作用。`target="_blank"`属性用于链接,当点击链接时会在新窗口打开目标页面。在...

    Java架构面试专题汇总(含答案)和学习笔记.zip

    这个压缩包包含的学习笔记和习题集全面覆盖了Java架构师所需的核心知识点,下面我们将深入探讨其中的关键内容。 1. **Java基础** - **数据类型与变量**:理解基本数据类型、引用数据类型,以及它们在内存中的存储...

    MYSQL开发学习笔记

    ### MySQL开发学习笔记知识点梳理 #### 一、基础知识概述 - **数据库定义**: 数据库(database)是用于存储数据的仓库,它可以高效地存储和处理数据。主要存储介质有两种:磁盘和内存(RAM)。 - **数据库分类**: - *...

Global site tag (gtag.js) - Google Analytics