1.Memcached服务安装

Memcached的安装比较简单,很多平台都是支持Memcached,常见的有:Linux 、Windows

服务端端:    

           cd /home.oldboy/tools
           wget http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz 
           wget https://github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz  
    libevent 首先进行安装:
  1. wget https://github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz
  2. tar -zxvf libevent-2.0.19-stable.tar.gz
  3. cd libevent-2.0.19-stable
  4. ./configure
  5. make
  6. make install
 memcached服务端的安装:
  1. tar -zxvf memcached-1.4.0.tar.gz
  2. cd memcached-1.4.0
  3. ./configure
  4. make
  5. make install

2.启动memcached

查看路径:which memcached

[root@djw3 ~]# which memcached
/usr/local/bin/memcached

查看帮忙:/usr/local/bin/memcached  -h

常用参数说明:-p 指定监听的端口

-l  指定监控的地址(默认本机所有网卡的地址都监听)

-m 分配多大的内存区(默认是64M)

-c  默认能承受多少并发,默认是1024

-u  指定用户

-d  后台运行

-P pid文件,当前的进程写入到哪个文件,系统通过PID管理文件方便

-vv  以very vrebose模式启动,出错的时候用此命令系统

登陆:memcached -p 11211 -u root -m 16m -c10240  -d

查看:lsof -i :11211

如果要启动的话,在启动一个不同的端口,相同的命令就可以了。

3.操作memcached存放数据

1) 用nc命令 (nc命令想要连接到某处)

存:printf "set key008 0 0 10\r\noldboy0987\r\n"|nc 127.0.0.1 11211

[root@djw3 ~]# printf "set key008 0 0 10\r\noldboy0987\r\n"|nc 127.0.0.1 11211
STORED   --->stored 标识添加成功

取:printf "get key008\r\n"|nc 127.0.0.1 11211

[root@djw3 ~]# printf "get key008\r\n"|nc 127.0.0.1 11211
VALUE key008 0 10
oldboy0987
END

删除: printf "delete key008\r\n" |nc 127.0.0.1 11211

2) telnet 命令操作数据

telnet 127.0.0.1 11211  ---反应过慢,一般不推荐

[root@djw3 ~]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set key 0 0 10
oldboy

在telnet中,通过stats 可以看见memcached状态,通过quit可以退出

printf "stats\r\n"|nc 127.0.0.1 11211

4.Memcached的操作语法

<command name> <key> <flags> <exptime> <bytes>

set                 key       0             0             10

exptime:0表示不过期,其他表示到期就删除

flag:可以理解为一个标识符

bytes:数据占用哪个区块长度,比如10bytes的区块长度

5.关于Memcached的关闭

1)如果数据不是重要的话:pkill memcached、kill 进程号

2)指定pid开启后,关闭pid:

开启:memcached -p 11211 -u root -m 16m -c10240  -d  -P /var/run/11211.pid

关闭:kill `cat /var/run/11211.pid`

注意;1) nginx、apache、mysql都可以通过pid的方式杀掉  2) pid进程号是杀除了,但是文件会保留下来,如下:

[root@djw3 run]# ll /var/run/
total 84
-rw-r--r--  1 root    root       6 Nov 12 03:03 11211.pid
-rw-r--r--  1 root    root       6 Nov 12 03:04 11213.pid
-rw-r--r--  1 root    root       4 Nov  9 19:40 auditd.pid

6.企业工作场景中如何配置memcached ?

在工作中,一般都是开发人员提出需求,说要部署一个memcache,做为数据缓存。我们运维接到需求,需要和开发确定,(显得水平高)内存指定多大,根据业务有多少数据要缓存来确定。还要确定业务重要性,进而采取负载均衡,分布式等架构,最后确定并发连接数。

实际的部署,一般都是安装memcached服务端,并确保能够连接上。

7.Lnmp一体环境安装Memcached客户端

1)   下载客户端: wget http://pecl.php.net/get/memcache-2.2.5.tgz

2)    安装客户端memcached:

tar zxvf memcache-2.2.5.tgz
            cd memcache-2.2.5
            /application/php/bin/phpize
           ./configure --enable-memcache --with-php-config=/application/php/bin/php-config --with-zlib-dir
            make
            make install

查看,安装会有的模块:

 [root@djw1 memcache-2.2.5]# ll /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/
total 2324
-rwxr-xr-x 1 root root  414245 Jun 13 14:45 eaccelerator.so
-rwxr-xr-x 1 root root 1070977 Jun 14 02:15 imagick.so
-rwxr-xr-x 1 root root  246656 Jun 15 13:01 memcache.so

配置php.ini文件内容

extension_dir = "/application/php/lib/php/extensions/no-debug-non-zts
-20090626/"
extension = memcache.so

检查客户端memcached是否安装成功:

只有安装了memcached客户端,那么php等程序才能通过memcached客户端的库访问memcached服务器的服务

测试代码:

<?php
    $memcache = new Memcache;
    $memcache->connect('127.0.0.1', 11211) or die ("Could not connect");
    $memcache->set('key001', 'oldboy001');
    $memcache->set('key002', 'oldboy002');
    $get_value01 = $memcache->get('key001');
    $get_value02 = $memcache->get('key002');
    echo $get_value02."<br>";
    echo $get_value01;
?>

测试结果:

8.memcached的应用

1)数据库前端的内存缓存   2)集群中的session共享存储

9.如何实现集群中的session共享存储

在例如负载均衡架构中,我们需要保持会话共享,那么就需要所有的web服务器都公用session,可以选择NFS,但是如果选择memcache,会更加的快速,因此,如下配置就可以实现memcached的session共享。

   在php.ini文件中配置如下:

   session.save_handler = memcache

   session.save_path = "tcp:// 192.168.0.102:11211"

10. memcached的分布式集群

memcached需要用url_hash算法,在nginx的模块中有一致性hash算法。访问一个web服务器后,指定到唯一的一台memcached上。

11.memcached服务的多种操作管理方式

1)客户端请求memcached如果没有,就会请求数据库,同时是由客户端将数据传到memcached.

2)   如果客户端更新数据,那么就将数据放到数据库上,这时数据库有两种选择,一种是直接更新memcached,一种是通知memcached过期了,删除数据。下次请求时有客户端放到memcached上面。

三、NOSQL之Memcached缓存服务实战精讲第二部的更多相关文章

  1. 二、NOSQL之Memcached缓存服务实战精讲第一部

    1.Memcached是一套数据缓存系统或软件. 用于在动态应用系统中缓存数据库的数据,减少数据库的访问压力,达到提升网站系统性能的目的:Memcached在企业应用场景中一般是用来作为数据库的cac ...

  2. Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲

    Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台:   微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...

  3. openstack (3)---------部署memcached缓存服务,keystone服务

    一.memcached概念 Memcached 是一个开源的.高性能的分布式内存对象缓存系统.通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高网站访问速度,加速动态WEB应用.减轻数据库负载 ...

  4. [网站日志]当Memcached缓存服务挂掉时性能监视器中的表现

    我们用的Memcached缓存服务是阿里云OCS,今天晚上遇到了一次OCS挂掉的情况(计划中的升级),看一下性能监视器中的表现,也许对分析黑色1秒问题有帮助. 应用日志中错误: 2014-06-05 ...

  5. Keepalived原理与实战精讲--VRRP协议

    . 前言 VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还简 ...

  6. (转)不看绝对后悔的Linux三剑客之sed实战精讲

    不看绝对后悔的Linux三剑客之sed实战精讲 原文:http://blog.51cto.com/hujiangtao/1923718 二.Linux三剑客之sed命令精讲 1,前言 我们都知道,在L ...

  7. (转)不看绝对后悔的Linux三剑客之grep实战精讲

    不看绝对后悔的Linux三剑客之grep实战精讲 原文:http://blog.51cto.com/hujiangtao/1923675 https://www.cnblogs.com/peida/a ...

  8. [转载]Memcached缓存服务的简单安装

    1.Linux下的安装方法 下载:wget http://memcached.org/latest tar -zxvf memcached-1.x.x.tar.gz cd memcached-1.x. ...

  9. (转)不看绝对后悔的Linux三剑客之awk实战精讲

    原文:http://blog.51cto.com/hujiangtao/1923930 一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中 ...

随机推荐

  1. CodeForces - 402B Trees in a Row (暴力)

    题意:给定n个数,要求修改其中最少的数,使得这n个数满足ai + 1 - ai = k. 分析: 暴力,1000*1000. 1.这n个数,就是一个首项为a1,公差为k的等差数列.k已知,如果确定了a ...

  2. git提交时设置忽略部分文件提交

    git当前提交项目时总是会提交很多东西把Debug文件也提交了 在项目根目录(例如我的项目文件夹下,.sln文件的上一级目录)下建一个.gitignore文件,文件内容直接可粘贴下面的,这样 pack ...

  3. c#textBox控件限制只允许输入数字及小数点,是否为空

    c#textBox控件限制只允许输入数字及小数点 转载 //判断按键是不是要输入的类型. if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) ...

  4. 2020/1/30 PHP代码审计之CSRF漏洞

    0x00 CSRF漏洞 CSRF(Cross-site request forgery)跨站请求伪造:也被称为"One Click Attack"或者Session Riding, ...

  5. 查询内核符号链接的信息的API

    NtOpenSymbolicLinkObject和NtQuerySymbolicLinkObject获取指定符号链接的信息 版权声明:本文为博主原创文章,未经博主允许不得转载.

  6. 给vector对象添加元素的方法

    #include<iostream> #include<vector> using namespace std; int main() { //初始化10个元素,每个值都为0 ...

  7. Exchange 2016 CU12安装报错

    1.         报错信息: Exchange 2016 升级 CU12补丁报错,主要是在进行第10步安装管理工具时报SeSecurityPrivilega错误,详细如下: 查看安装log信息如下 ...

  8. Python Learning Day5

    Response响应 import requests response = requests.get('https://baidu.com') # response响应 print(response. ...

  9. HDU_2256 矩阵快速幂 需推算

    最近开始由线段树转移新的内容,线段树学到扫描线这里有点迷迷糊糊的,有时候放一放可能会好一些. 最近突然对各种数学问题很感兴趣.好好钻研了一下矩阵快速幂.发现矩阵真是个计算神器,累乘类的运算原本要O(N ...

  10. preg_match()//explode()// 输出函数//assert()//trim()

    1.preg_match() 这是一个正则表达式匹配的函数,其用法如下: 查找文本字符串"php": <?php //模式分隔符后的"i"标记这是一个大小 ...