Memcached是一个内存数据库,数据以key/value键值对的形式保存在服务器预先分配的内存区块中,由于Memcached服务自身没有对缓存的数据进行持久化存储的设计,因此,在服务器端的Memcached进程重启之后,数据就会丢失。且当内存中缓存的数据容量达到启动时设定的内存值时,也会自动使用LRU算法删除过期的数据

Memcached应用场景

  1. 作为数据库的查询数据缓存
  2. 作为集群节点的session会话共享存储

Memcached预热及重启

  1. 当需要大面积重启Memcached时,首先要在前端控制网站入口的访问流量,然后重启Memcached集群进行预热,所有数据预热完毕之后,再逐步放开前端网站入口流量
  2. 启动集群服务器时,一定要从网站集群的后端一次往前端开启,特别是要提前预热

Memcached删除机制

  1. 不主动检车item对象是否过期,而是在get时才会检查item对象是否过期以及是否应该删除
  2. 当删除item对象时,一般不释放内存空间,而是做删除标记,将指针放入slot回收插槽,下次分配的时候直接使用
  3. 当内存空间满的时候,将会根据LRU算法把最近最少使用的item对象删除
  4. 数据存入可以设定过期时间,但是数据过期后不会立即删除,而是在get时检查item对象是否过期以及是否应该删除
  5. 如果不希望系统使用LRU算法清除数据,可以使用-M参数

安装Memcached

#安装libevent
#Memcached采用的是异步epoll/kqueue非阻塞I/O网络模型,其实现方式是基于异步的libevent时间单进程、单线程模式。使用libevent作为事件通知机制;
#应用程序端通过指定服务器的IP地址及端口,就可以连接Memcached服务进行通信
yum install libevent libevent-devel #安装Memcached
yum安装的版本略低,但是不影响使用,建议使用yum或rpm包方式安装,简单易用
yum install memcached #如果想安装更高版本的则需要编译安装
wget http://memcached.org/files/memcached-1.4.39.tar.gz
tar zxf memcached-1.4.39.tar.gz
cd memcached-1.4.39
./configure --prefix=/usr/local/memcached
make && make install
ln -s /usr/local/memcached/bin/memcached /usr/bin/memcached #我们可以把启动命令放入/etc/rc.local,以便下次开机自启动

Memcached服务的基本管理

#启动Memcached
memcached -m 16m -p 11211 -d -uroot -c 8192 #启动命令相关参数书名
-d 以守护进程方式运行服务
-u 指定运行Memcached用户
-l 指定监听的服务器IP地址,可以不设置此参数
-p 指定监听的端口,默认为11211
-P 保存PID到指定文件
-m 指定可以缓存数据的最大内存,默认为64MB
-M 服务内存不够时禁止LRU,如果内存满了会报错(rather than removing items)
-L 启用大内存也,可以降低内存浪费,改进性能
-c 最大并发连接数,默认是1024
-t 线程数,默认4.由于Memcached采用的是NIO,所以太多线程作用不大
-R 每个event最大请求数,默认是20
-C 禁用CAS(可以禁止版本计数,减少开销) #关闭Memcached
单实例:ps -ef|grep memcached|grep -v grep|awk '{print $2}'|xargs kill
多实例: kill `cat /var/run/11211.pid` #启动多实例最好在启动时增加-P参数指定固定的pid文件,这样便于管理

工作中如何配置Memcached

和开发人员进行深入沟通,确定内存大小以及业务的重要性,进行决定是否采用负载均衡、集群,以及确定并发连接数等。对于运维人员,部署Memcached一般就是安装Memcached服务端,把服务启动起来,做好监控,配置好开机自启动。客户端的PHP程序一般在安装LNMP环境时都会提前安装Memcached客户端插件,Java程序环境下,开发人员会用第三方的JAR包直接连接Memcached服务。

memcahced部署的更多相关文章

  1. memcache和memcahced区别

    在写这篇文章之前一直对memcache .memcahced模糊,相差一个字母,特此总结下: Memcache是什么? Memcache是一个自由和开放源代码.高性能.分配的内存对象缓存系统.用于加速 ...

  2. Nextcloud私有云盘在Centos7下的部署笔记

    搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典.而Nextcloud是ownCloud原开发团队打造的号称是“下一代”存储.初一看觉得“口气”不小,刚推出来就重新“定义”了Clo ...

  3. 01 . Memcached简介及部署

    Memcached简介 memcached是一个自由开源,高性能,分布式内存对象存储系统 基于内存的key-valued存储,用来存储小块的任意数据(字符串,对象) 他是一个简洁的key-value存 ...

  4. [原]CentOS7.2部署node-mapnik

    转载请注明表作者think8848及出处(http://think8848.cnblogs.com) node-mapnik依赖项中要求g++ >= 5, toolchain (>= GL ...

  5. 使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus

    最新的Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈的拿起Visual Studio 2015创建了一个mvc 5的项目,然后部署到Mono上,浏览下发现一堆错 ...

  6. 通过Jexus 部署 dotnetcore版本MusicStore 示例程序

    ASPNET Music Store application 是一个展示最新的.NET 平台(包括.NET Core/Mono等)上使用MVC 和Entity Framework的示例程序,本文将展示 ...

  7. 结合Jexus + Kestrel 部署 asp.net core 生产环境

    ASP.NET Core 是微软的全新的框架.这一框架的目标 ︰ 跨平台 针对云应用优化 解除 System.Web 的依赖. 获得下面三个方面的优势,你可以把它认为是一个C# 版本的NodeJS: ...

  8. 4.Windows Server2012 R2里面部署 MVC 的网站

    网站部署之~Windows Server | 本地部署:http://www.cnblogs.com/dunitian/p/4822808.html#iis 后期会在博客首发更新:http://dnt ...

  9. Win10 IIS本地部署MVC网站时不能运行?

    异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 部署后出现这个错误: 打开文件目录后发现是可以看见目录的,静态页面也是可以打开的 ...

随机推荐

  1. JS容易理解错误的地方

    在这端代码执行的末尾,你会不会hi变量回事函数中的hi了?你会不会认为这不是按引用传递了? 对值传递和引用传递产生质疑了? 1 var hi = {}; 2 function sayHello(hi) ...

  2. BZOJ2001 [Hnoi2010]City 城市建设 【CDQ分治 + kruskal】

    题目链接 BZOJ2001 题解 CDQ分治神题... 难想难写.. 比较朴素的思想是对于每个询问都求一遍\(BST\),这样做显然会爆 考虑一下时间都浪费在了什么地方 我们每次求\(BST\)实际上 ...

  3. BZOJ4012 [HNOI2015]开店 【动态点分治 + splay】

    题目链接 BZOJ4012 题解 Mychael并没有A掉,而是T掉了 讲讲主要思路 在点分树上每个点开两棵\(splay\), 平衡树\(A\)维护子树中各年龄到根的距离 平衡树\(B\)维护子树中 ...

  4. 12.25模拟赛T3

    可以发现,答案O(根号)(因为链上答案最大,n/2,n/3...根号种) 每次求答案要二分 优秀的做法是: 对于小于根号n的暴力nlogn找,可能二分到同一个mid,记忆化一下最小的tot值 对于大于 ...

  5. Codeforces Round #506 (Div. 3) 题解

    Codeforces Round #506 (Div. 3) 题目总链接:https://codeforces.com/contest/1029 A. Many Equal Substrings 题意 ...

  6. sql异常-The used SELECT statements have a different number of columns

    两个或多个select查询进行union时,查询的列不对应.两个select进行union时,两个select的查询出的列必须相对应.

  7. win7---虚拟wifi无法启动承载网络

    转载自:http://nbbbs.zol.com.cn/40/32108_397955.html 解决方案:控制面板→硬件和声音→电源选项→更改计划设置→更改高级电源设置→无线适配器设置→节能模式,改 ...

  8. COGS2090 Asm.Def找燃料

    时间限制:1 s   内存限制:256 MB [题目描述] “听说咱们要完了?”比利·海灵顿拨弄着操纵杆,头也不回地问Asm.Def. “不要听得风就是雨.” “开个玩笑嘛.不就是打机器人,紧张啥,你 ...

  9. python imageai 对象检测、对象识别

    imageai库里面提供了目标识别,其实也可以说是目标检测,和现在很多的收集一样就是物体识别.他可以帮你识别出各种各样生活中遇见的事物.比如猫.狗.车.马.人.电脑.收集等等. 感觉imageai有点 ...

  10. camera摄像原理之二:色彩空间【转】

    转自:http://blog.csdn.net/ghostyu/article/details/7912854 对于sensor 来说,我们经常接触到的色彩空间的概念,主要是RGB , YUV这两种( ...