当你听到memcache与memcached时把它当做是一个东东就好了,尽管它们存在区别,但是这并不影响你对它们的运用及理解。

“Memcache”它是一个自由和开放源代码、高性能、分配的内存对象缓存系统,即该系统名称为“Memcache”;

“Memcached”它是该系统的主程序文件,以守护程序方式运行于一个或多个服务器中(分布式),随时接受客户端的连接操作,使用共享内存存取数据;

“Memcachedb”它是新浪2007年的项目,在Memcached的基础上开发出来了,它与Memcache不同的是它提供了数据持久化存储

首先,我们需要下载一个memcached安装程序,memcached版本很多,开源的东西我们一定要找一个持续更新的版本,很简单,有团队在维护升级。

我选择的版本是:beitmemcached,项目地址:http://code.google.com/p/beitmemcached/  注:此链结为windows下memcached文程序安装文件及示例。

图中的两个文件分别为:上面的是客户端调用示例项目文件、下面的文件是Memcached主程序安装文件

然后,将memcached主程序文件安装到服务器上。

Windows下安装:

1.将上图中Memcached 1.2.5.zip解压缩到 D:\program files\memcached目录下(此目录自行定义)。

2.Ctrl+R,输入cmd,打开命令行窗口,转到D:\program files\memcached目录下。

3.memcached.exe -d install

4.memcached.exe -d start

如果你要卸载,执行下面的命令:

1.memcached.exe -d stop

2.memcached.exe -d uninstall

Linux(CentOS 5.x)下安装:

1. yum install gcc

2. cd /tmp

3. wget http://www.monkey.org/~provos/libevent-2.0.4-alpha.tar.gz   注:memcached 用到了 libevent 这个库用于 Socket 的处理,所以 还需要安装 libevent

4. tar zxvf libevent-2.0.4-alpha.tar.gz

5. cd libevent-2.0.4-alpha

6. ./configure -prefix=/usr/local/libevent

7. make

8. make install

9. cd ~

10. cd /tmp

11. http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz

12. tar zxvf memcached-1.4.5.tar.gz

13. cd memcached-1.4.5

14. ./configure -prefix=/usr/local/memcached --with-libevent=/usr/local/libevent    注:安装memcached时需要指定libevent的安装位置

15. make

16. make install

17. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libevent/lib   注:将libevent的lib目录加入LD_LIBRARY_PATH里

18. vi /etc/sysconfig/iptables

19. 将下面这行加入进去

-A RH-Firewall-l-INPUT -p tcp -m tcp --dport 11211 -j ACCEPT  注:将memcached加入到防火墙允许访问规则中

20. service iptables restart  注:防火墙重启

21. /usr/local/memcached/bin/memcached -d   注:启动memcached

memcached启动参数描述:

-d :启动一个守护进程,

-m:分配给Memcache使用的内存数量,单位是MB,默认是64MB,

-u :运行Memcache的用户

-l  :监听的服务器IP地址

-p :设置Memcache监听的端口,默认是11211    注:-p(p为小写)

-c :设置最大并发连接数,默认是1024

-P :设置保存Memcache的pid文件   注:-P(P为大写)

如果要结束Memcache进程,执行:kill cat pid文件路径

无论是在windows下还是在linux下安装都非常简单,使用起来也很简单。

如何往memcached中插入数据?如何来读取数据?示例代码如下:

代码

using System;
using System.Collections.Generic;

namespace BeIT.MemCached {
class Example {
public static void Main(string[] args) {
//---------------------
// Setting up a client.
//---------------------
Console.Out.WriteLine("Setting up Memcached Client.");
MemcachedClient.Setup("MyCache", new string[] { "localhost" });

//It is possible to have several clients with different configurations:
//If it is impossible to resolve the hosts, this method will throw an exception.
try {
MemcachedClient.Setup("MyOtherCache", new string[]{ "server1.example.com:12345", "server2.example.com:12345"});
} catch (Exception e) {
Console.WriteLine(e.Message);
}

//Get the instance we just set up so we can use it. You can either store this reference yourself in
//some field, or fetch it every time you need it, it doesn't really matter.
MemcachedClient cache = MemcachedClient.GetInstance("MyCache");

//It is also possible to set up clients in the standard config file. Check the section "beitmemcached"
//in the App.config file in this project and you will see that a client called "MyConfigFileCache" is defined.
MemcachedClient configFileCache = MemcachedClient.GetInstance("MyConfigFileCache");

//Change client settings to values other than the default like this:
cache.SendReceiveTimeout = 5000;
cache.ConnectTimeout = 5000;
cache.MinPoolSize = 1;
cache.MaxPoolSize = 5;

//----------------
// Using a client.
//----------------

//Set some items
Console.Out.WriteLine("Storing some items.");
cache.Set("mystring", "The quick brown fox jumped over the lazy dog.");
cache.Set("myarray", new string[]{"This is the first string.", "This is the second string."});
cache.Set("myinteger", 4711);
cache.Set("mydate", new DateTime(2008, 02, 23));
//Use custom hash
cache.Set("secondstring", "Flygande b鋍kasiner s鰇a hwila p?mjuka tufvor", 4711);

//Get a string
string str = cache.Get("mystring") as string;
if (str != null) {
Console.Out.WriteLine("Fetched item with key: mystring, value: " + str);
}

//Get an object
string[] array = cache.Get("myarray") as string[];
if (array != null) {
Console.Out.WriteLine("Fetched items with key: myarray, value 1: " + array[0] + ", value 2: " + array[1]);
}

//Get several values at once
object[] result = cache.Get(new string[]{"myinteger", "mydate"});
if (result[0] != null && result[0] is int) {
Console.Out.WriteLine("Fetched item with key: myinteger, value: " + (int)result[0]);
}
if (result[1] != null && result[1] is DateTime) {
Console.Out.WriteLine("Fetched item with key: mydate, value: " + (DateTime)result[1]);
}

str = cache.Get("secondstring", 4711) as string;
if (str != null) {
Console.Out.WriteLine("Fetched item with key and custom hash: secondstring, value: " + str);
}

//Set a counter
Console.Out.WriteLine("Setting an item for incrementing and decrementing.");
cache.SetCounter("mycounter", 9000);
ulong? counter = cache.GetCounter("mycounter");
if (counter.HasValue) {
Console.Out.WriteLine("Fetched mycounter, value: " + counter.Value);
}

//Increment the counter
counter = cache.Increment("mycounter", 1);
if (counter.HasValue) {
Console.Out.WriteLine("Incremented mycounter with 1, new value: " + counter.Value);
}

//Decrement the counter
counter = cache.Decrement("mycounter", 9000);
if (counter.HasValue) {
Console.Out.WriteLine("Decremented mycounter with 9000, new value: " + counter.Value);
}

//Append and prepend
Console.Out.WriteLine("Storing bar for append/prepend");
cache.Set("foo", "bar");
Console.Out.WriteLine("Appending baz");
cache.Append("foo", " baz");
Console.Out.WriteLine("Prepending foo");
cache.Prepend("foo", "foo ");
Console.Out.WriteLine("New value: " + cache.Get("foo"));

//Cas
cache.Delete("castest");
Console.Out.WriteLine("Trying to CAS non-existant key castest: " + cache.CheckAndSet("castest", "a", 0));
Console.Out.WriteLine("Setting value for key: castest, value: a");
cache.Set("castest", "a");
Console.Out.WriteLine("Trying to CAS key castest with the wrong unique: " + cache.CheckAndSet("castest", "a", 0));
ulong unique;
cache.Gets("castest", out unique);
Console.Out.WriteLine("Getting cas unique for key castest: " + unique);
Console.Out.WriteLine("Trying to CAS again with the above unique: " + cache.CheckAndSet("castest", "b", unique));
string value = cache.Gets("castest", out unique) as string;
Console.Out.WriteLine("New value: " + value + ", new unique: " + unique);

Console.Out.WriteLine("Displaying the socketpool status:");
foreach (KeyValuePair<string, Dictionary<string, string>> host in cache.Status()) {
Console.Out.WriteLine("Host: " + host.Key);
foreach (KeyValuePair<string, string> item in host.Value) {
Console.Out.WriteLine("\t" + item.Key + ": " + item.Value);
}
Console.Out.WriteLine();
}

Console.Out.WriteLine();
Console.Out.WriteLine("Finished. Press enter to exit.");
Console.In.ReadLine();
}
}
}

注:memcached是以KEY-VALUE的方式进行数据存储的,KEY的大小限制:Key(max)<=250个字符;VALUE在存储时有限制:Value(max)<= 1M;memcached默认过期时间:ExpiresTime(max)= 30(days)。

转载于:https://www.cnblogs.com/zengen/archive/2010/12/07/1874031.html

memcache/memcached/memcachedb 配置、安装相关推荐

  1. memcache/memcached/memcachedb 配置、安装(转)

    当你听到memcache与memcached时把它当做是一个东东就好了,尽管它们存在区别,但是这并不影响你对它们的运用及理解. "Memcache"它是一个自由和开放源代码.高性能 ...

  2. memcached的基本命令(安装、卸载、启动、配置相关)

    memcached的基本命令(安装.卸载.启动.配置相关): -p 监听的端口  -l 连接的IP地址, 默认是本机   -d start 启动memcached服务  -d restart 重起me ...

  3. php5.4之分布式缓存memcache(windows7下安装配置)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/qq1355541448/article/details/36663203 使用理由:就是为了频繁查询 ...

  4. win7 64位系统 memcache/memcached安装

    2019独角兽企业重金招聘Python工程师标准>>> memcached介绍: Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过 ...

  5. win7 安装 wamp2.5版本的memcache+memcached

    1. 下载  memcache+memcached 2. 以管理员身份运行 cmd.exe,并转至memcached所在文件夹,比如: cd c:\memcached .(如果不以管理员身份运行,将得 ...

  6. ubuntu php7 memcache,linux ubuntu下安装php memcache扩展

    memcached 安装 sudo apt-get install memcached memcached 参数说明 memcached -d -m 50 -p 11211 -u root -m 指定 ...

  7. memcached 的Linux安装

    一.memcached 的编译安装 准备: Memcached下载地址:http://www.danga.com/memcached/ libevent下载地址: http://monkey.org/ ...

  8. memcached介绍,安装与基本使用

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

  9. 宝塔无法安装php memcached,宝塔面板安装Memcached缓存加速wordpress

    开启缓存是为了加速wordpress经常用到的一种提速方法,除了有专门的插件进行静态化缓存外,还可以使用Memcached进行内存缓存,宝塔面板集成了Memcached,大大降低了使用难度.今天就记录 ...

  10. Memcached windows 下安装与应用

    Memcached windows 下安装与php应用 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数 ...

最新文章

  1. APUE(第九章)进程关系
  2. Oracle单机版开机自启动
  3. ASP.NET 学习笔记_01 广告控件的使用
  4. css面试基础知识,CSS知识点与面试题解析
  5. 开发日记-20190417 关键词 代码之间耦合度的一刀两断 (思路篇)
  6. Java数据结构--链表
  7. 达拉草201771010105《面向对象程序设计(java)》第十六周学习总结
  8. 西北工业大学 计算机学院王云岚,王云岚
  9. []int 能转换为 []interface 吗?
  10. G1 GC 日志格式
  11. [转] Oracle学习之创建数据库(新建实例)
  12. 侏罗纪世界手游显示无法登陆到服务器,《侏罗纪世界手游》不能玩 解决攻略...
  13. 李开复 —— 给中国学生的第四封信:大学四年应是这样度过
  14. python requests text content_对python requests的content和text方法的区别详解
  15. HDU4530:小Q系列故事——大笨钟
  16. oracle select into from 用法,数据库插入数据之select into from与insert into select区别详解...
  17. STM32单片机OLED经典2048游戏单片机小游戏
  18. torch.ge()函数解读
  19. “我在用生命送快递”
  20. 提交BlackBerry App World时候填写的SKU是什么?

热门文章

  1. 一、配置etcd数据库
  2. EasyPusher直播推送中用到的缓冲区设计和丢帧原理
  3. 浪潮之巅--蓝色巨人读后感
  4. Eclipse学习笔记——快捷键
  5. 浅析.NET中的引用类型和值类型(下)
  6. VC下关于debug和release的不同的讨论(收藏-转载)
  7. spark 算子实例
  8. java网络编程基础——TCP网络编程三
  9. 读Zepto源码之Callbacks模块
  10. ES6的promise对象应该这样用