Memcached 简介

  • Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
  • Memcached 官方地址:http://memcached.org/
  • Memcached 教程: http://www.runoob.com/Memcached/Memcached-tutorial.html

Memcached 安装

  • yum安装Memcached
[root@linuxprobe ~]# yum -y install memcached
[root@linuxprobe ~]# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
 
  • 源码安装Memcached
wget http://memcached.org/latest                    下载最新版本
tar -zxvf memcached-1.x.x.tar.gz 解压源码
cd memcached-1.x.x 进入目录
./configure --prefix=/usr/local/memcached 配置
make && make test 编译
sudo make install 安装
 

注意:如果使用自动安装 memcached 命令位于 /usr/local/bin/memcached。 
启动选项: 
-d 是启动一个守护进程; 
-m 是分配给Memcache使用的内存数量,单位是MB; 
-u 是运行Memcache的用户; 
-l 是监听的服务器IP地址,可以有多个地址; 
-p 是设置Memcache监听的端口,,最好是1024以上的端口; 
-c 是最大运行的并发连接数,默认是1024; 
-P 是设置保存Memcache的pid文件。

# 启动memcached
[root@linuxprobe ~]# systemctl start memcached
[root@linuxprobe ~]# systemctl enable memcached
Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.
 
  • 防火墙开启情况下,执行下面命令
[root@linuxprobe ~]# firewall-cmd --add-port=11211/tcp --permanent
success
[root@linuxprobe ~]# firewall-cmd --reload
success
 

Memcached 连接

  • python使用memcached
[1] Install Python Memcached Client Library.
[root@linuxprobe ~]# yum -y install python-memcached
[2] Basic usage on Python.
[root@linuxprobe ~]$ vi use_memcache.py
#!/usr/bin/env python
import memcache
client = memcache.Client(["127.0.0.1:11211"], cache_cas=True)
# set and get a Key
client.set("key01", "value01")
print "key01.value :", client.get("key01")
# append and get a Key
client.append("key01", ",value02")
print "key01.value :", client.get("key01")
client.set("key02", 1)
# increment
client.incr("key02", 100)
print "key02.value :", client.get("key02")
# decrement
client.decr("key02", 51)
print "key02.value :", client.get("key02")
# CAS
client.set("key03", "value03")
print "key03.value :", client.gets("key03")
print "key03.casid :", client.cas_ids["key03"]
client.cas("key03", "value04")
print "key03.value :", client.gets("key03")
# run
[root@linuxprobe ~]$ python use_memcache.py
key01.value : value01
key01.value : value01,value02
key02.value : 101
key02.value : 50
key03.value : value03
key03.casid : 297
key03.value : value04
 
  • php使用memcached
[1] Install PHP Memcached Client Module.
# install from EPEL
[root@linuxprobe ~]# yum --enablerepo=epel -y install php-pecl-memcached
[2] Basic usage on PHP.
[root@linuxprobe ~]$ vi use_memcache.php
<?php
$memcache = new Memcached();
$memcache->addServer('localhost', 11211);
$memcache->setOption(Memcached::OPT_COMPRESSION, false);
// set and get a Key
$memcache->set('key01', 'value01');
print 'key01.value : ' . $memcache->get('key01') . "\n";
// append and get a Key
$memcache->append('key01', ',value02');
print 'key01.value : ' . $memcache->get('key01') . "\n";
$memcache->set('key02', 1);
print 'key02.value : ' . $memcache->get('key02') . "\n";
// increment
$memcache->increment('key02', 100);
print 'key02.value : ' . $memcache->get('key02') . "\n";
// decrement
$memcache->decrement('key02', 51);
print 'key02.value : ' . $memcache->get('key02') . "\n";
$memcache->set('key03', 'value03');
print 'key03.value : ' . $memcache->get('key03') . "\n";
// CAS (on the example below, the Value of key03 will not update to value05)
$memcache->get('key03', null, $cas);
$memcache->replace('key03', 'value04');
if ($memcache->getResultCode() == Memcached::RES_NOTFOUND) {
$memcache->add('key03', 'value03');
} else {
$memcache->cas($cas, 'key03', 'value05');
}
print 'key03.value : ' . $memcache->get('key03') . "\n";
?>
# run
[root@linuxprobe ~]$ php use_memcache.php
key01.value : value01
key01.value : value01,value02
key02.value : 1
key02.value : 101
key02.value : 50
key03.value : value03
key03.value : value04
 
  • Node.js 使用memcached
[1] Install Memcached Client Module.
[root@linuxprobe ~]$ npm install memcache
memcache@0.3.0 node_modules/memcache
[2] Basic usage on Node.js.
[root@linuxprobe ~]$ vi use_memcache.js
var memcache = require('memcache');
var client = new memcache.Client();
client.connect();
// set and get a Key
client.set('key01', 'value01');
client.get('key01', function (err, val) {
console.log("key01.value :", val);
});
// append and get a Key
client.append('key01', ',value02');
client.get('key01', function (err, val) {
console.log("key01.value :", val);
});
client.set('key02', 1);
client.get('key02', function (err, val) {
console.log("key02.value :", val);
});
// increment
client.increment('key02', 100);
client.get('key02', function (err, val) {
console.log("key02.value :", val);
});
// decrement
client.decrement('key02', 51);
client.get('key02', function (err, val) {
console.log("key02.value :", val);
});
// delete a Key
client.delete('key03');
client.get('key03', function (err, val) {
console.log("key03.value :", val);
});
client.close();
# run
[root@linuxprobe ~]$ node use_memcache.js
key01.value : value01
key01.value : value01,value02
key02.value : 1
key02.value : 101
key02.value : 50
key03.value : null
 

CentOS 7 安装Memcached服务的更多相关文章

  1. NoSql1 在Linux(CentOS)上安装memcached及使用

    前言:       今天是初五,生活基本要从过年的节奏中回归到正常的生活了,所以想想也该想想与工作有关的事情了.我之前在工作中会经常使用memcached和redis,但是自己一直没有时间系统的好好看 ...

  2. mac 安装memcached服务

    使用homebrew安装,homebrew安装方法http://brew.sh/ 安装memcached服务 brew install memcached 配置开机启动(用brew安装之后下面会提示怎 ...

  3. Mac linux 安装memcached服务 用法

    今天在Mac上安装memcached服务的时候 由于安装memcached之前需要安装libevent依赖包 所以使用brew install libevent 安装过程中报错 Warning: Yo ...

  4. 二,windows下安装memcached服务

    window下安装memcached服务的流程如下: 1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached 2. 在终端(也即cmd命令界面)下输入 ‘c ...

  5. 安装memcached服务 和 php 安装memcache扩展

    这是所有的命令,至于哪个命令是干嘛的自己悟去吧  ,顺便穿插一些知识点 安装libevent cd /home/ wget  http://www.monkey.org/~provos/libeven ...

  6. 在 CentOS 上安装 vsftp 服务

    在 CentOS 上安装 vsftp 服务 1.查看当前 CentOS 服务器是否已安装了 vsftpd 服务: rpm -q vsftpd 如果打印如下类似的信息则表明已安装 vsftpd 服务: ...

  7. Linux安装Memcached服务

    环境: CentOS 6.4 libevent-1.4.14b-stable memcached-1.4.21 查看是否安装libevent[root@localhost ~]# rpm -qa |g ...

  8. 在Linux上安装Memcached服务

    下载并安装Memcache服务器端服务器端主要是安装memcache服务器端.下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz ...

  9. CentOS上安装GitBlit服务

    简单介绍 在上一篇文章中,已经简单的介绍了如何在CentOS的服务器上搭建git服务器.但是这种方式实现的服务器功能比较弱,操作起来也比较繁琐.在网上搜索了一圈,感觉Gitblit比较符合我的需求.接 ...

随机推荐

  1. 20155201 实验二《Java面向对象程序设计》实验报告

    20155201 实验二<Java面向对象程序设计>实验报告 一.实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. ...

  2. net.sf.json和 com.fasterxml.jackson中对象转json的区别

    近期做项目的时候,发现使用net.sf.json包中的JSONObject或JSONArray将对象转为json数据结构存在一个坑.当对String类型的属性赋值为null情况下,转为json结构为& ...

  3. HDU 6315 Naive Operations(线段树+区间维护)多校题解

    题意:a数组初始全为0,b数组题目给你,有两种操作: 思路:dls的思路很妙啊,我们可以将a初始化为b,加一操作改为减一,然后我们维护一个最小值,一旦最小值为0,说明至少有一个ai > bi,那 ...

  4. 解决 Faster R-CNN 图片中框不在一张图片上显示的问题

    目录 解决 Faster R-CNN 图片中框不在一张图片上显示的问题 发现问题 如何解决这个问题? 参考issues 解决 Faster R-CNN 图片中框不在一张图片上显示的问题 发现问题 在使 ...

  5. IE8 JSON is not defined

    问题原因: 昨天遇到了一个问题.就是用ajax从后台查询数据时,返回信息无法显示,经过提示发现是IE控制台提示: JSON is not defined 错误. 而且这个问题在本人自己的电脑上是不存在 ...

  6. jquery chosen 插件 动态设置+更新选项值

    我要在表单里使用一个select下拉菜单(是不是multiple无所谓),所以选择了jquery chosen这个插件.现在有一个需求,需要根据表单的另一个域来动态加载该select元素的选项. 1 ...

  7. tp5集成淘宝,微信,网易,新浪等第三方登录

    tp5集成淘宝,微信,网易,新浪等第三方登录 一.总结 一句话总结: 接口 链接 实现的话就是这些平台给的一个接口(链接),你通过这些接口登录进去之后,它会给你返回用户名,头像之类的信息,我们的网站存 ...

  8. UVALive-2966 King's Quest(强连通+二分图匹配)

    题目大意:有n个男孩和和n个女孩,已只每个男孩喜欢的女孩.一个男孩只能娶一个女孩.一个女孩只能嫁一个男孩并且男孩只娶自己喜欢的女孩,现在已知一种他们的结婚方案,现在要求找出每个男孩可以娶的女孩(娶完之 ...

  9. The web application you are attempting to access on this web server is currently unavailable.......

    今天去服务器安装了个.net 4.0 framework(原本有1.0和2.0的),配置好站点后,选择版本为4.0,访问出错,错误代码如下 Server Application Unavailable ...

  10. 常用flash参数设置

    <object type="application/x-shockwave-flash" data="vcastr3.swf" width="6 ...