博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
memcahced部署
阅读量:5285 次
发布时间:2019-06-14

本文共 1914 字,大约阅读时间需要 6 分钟。

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 #安装Memcachedyum安装的版本略低,但是不影响使用,建议使用yum或rpm包方式安装,简单易用yum install memcached #如果想安装更高版本的则需要编译安装wget http://memcached.org/files/memcached-1.4.39.tar.gztar zxf memcached-1.4.39.tar.gz cd memcached-1.4.39./configure --prefix=/usr/local/memcachedmake && make installln -s /usr/local/memcached/bin/memcached /usr/bin/memcached #我们可以把启动命令放入/etc/rc.local,以便下次开机自启动

Memcached服务的基本管理

#启动Memcachedmemcached -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服务。

转载于:https://www.cnblogs.com/sellsa/p/7788655.html

你可能感兴趣的文章
认识 service worker
查看>>
第五次团队作业:项目展示
查看>>
WIN10更新后,应用报“不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况”...
查看>>
C#面向对象(二):封装和继承
查看>>
range()函数
查看>>
cs20_3-3
查看>>
codevs1074 食物链
查看>>
少量标签下的模型
查看>>
17.python购物车程序作业
查看>>
lightoj 1027【数学概率】
查看>>
Apparmor——Linux内核中的强制访问控制系统
查看>>
HOJ-1005 Fast Food(动态规划)
查看>>
jQuery 杂项方法
查看>>
系出名门Android(4) - 活动(Activity), 服务(Service), 广播(Broadcast), 广播接收 器(BroadcastReceiver)...
查看>>
Dynamics CRM Microsoft SQL Server 指定的数据库具有更高的版本
查看>>
FasfDFS整合Java实现文件上传下载
查看>>
love2d教程5--摄相机1视角跟随玩家
查看>>
用Hadoop构建电影推荐系统
查看>>
Linux命令1——a
查看>>
紫书 悲剧文本(链表)
查看>>