Windows Server 2008安装Memcached笔记

分布式缓存系统Memcached简介与实践

缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载。缓存是解决这个问题的好办法。但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵活。此时Memcached或许是你想要的。

Memcached是什么?
Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。

Memcached能缓存什么?
通过在内存里维护一个统一的巨大的hash表,Memcached能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。

Memcached快么?

非常快。Memcached使用了libevent(如果可以的话,在linux下使用epoll)来均衡任何数量的打开链接,使用非阻塞的网络I/O,对内部对象实现引用计数(因此,针对多样的客户端,对象可以处在多样的状态), 使用自己的页块分配器和哈希表, 因此虚拟内存不会产生碎片并且虚拟内存分配的时间复杂度可以保证为O(1).。

Danga Interactive为提升Danga Interactive的速度研发了Memcached。目前,LiveJournal.com每天已经在向一百万用户提供多达两千万次的页面访问。而这些,是由一个由web服务器和数据库服务器组成的集群完成的。Memcached几乎完全放弃了任何数据都从数据库读取的方式,同时,它还缩短了用户查看页面的速度、更好的资源分配方式,以及Memcache失效时对数据库的访问速度。

Memcached的特点
Memcached的缓存是一种分布式的,可以让不同主机上的多个用户同时访问, 因此解决了共享内存只能单机应用的局限,更不会出现使用数据库做类似事情的时候,磁盘开销和阻塞的发生。

Memcached的使用 
一 
Memcached服务器端的安装 (此处将其作为系统服务安装)
  下载文件:memcached 1.2.1 for Win32 binaries (Dec 23, 2006)
   1 解压缩文件到c:\memcached
   2 命令行输入 ‘c:\memcached\memcached.exe -d install‘ 
   3 命令行输入 ‘c:\memcached\memcached.exe -d start‘ ,该命令启动 Memcached ,默认监听端口为 11211
  通过 memcached.exe -h 可以查看其帮助
二   .NET memcached client library
   下载文件:https://sourceforge.net/projects/memcacheddotnet/

里面有.net1.1  和 .net2.0的两种版本  还有一个不错的例子。

三  应用

1 将Commons.dll,ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll 等放到bin目录
  2 引用Memcached.ClientLibrary.dll
  3 代码

1 namespace Memcached.MemcachedBench
 2 {
 3     using System;
 4     using System.Collections;
 5 
 6     using Memcached.ClientLibrary;
 7 
 8     public class MemcachedBench 
 9     {
10         [STAThread]
11         public static void Main(String[] args) 
12         {
13             string[] serverlist = { "10.0.0.131:11211", "10.0.0.132:11211" };
14 
15             //初始化池
16             SockIOPool pool = SockIOPool.GetInstance();
17             pool.SetServers(serverlist);
18 
19             pool.InitConnections = 3;
20             pool.MinConnections = 3;
21             pool.MaxConnections = 5;
22 
23             pool.SocketConnectTimeout = 1000;
24             pool.SocketTimeout = 3000;
25 
26             pool.MaintenanceSleep = 30;
27             pool.Failover = true;
28 
29             pool.Nagle = false;
30             pool.Initialize();
31 
32             // 获得客户端实例
33             MemcachedClient mc = new MemcachedClient();
34             mc.EnableCompression = false;
35 
36             Console.WriteLine("------------测  试-----------");
37             mc.Set("test", "my value");  //存储数据到缓存服务器,这里将字符串"my value"缓存,key 是"test"
38 
39             if (mc.KeyExists("test"))   //测试缓存存在key为test的项目
40             {
41                 Console.WriteLine("test is Exists");
42                 Console.WriteLine(mc.Get("test").ToString());  //在缓存中获取key为test的项目
43             }
44             else
45             {
46                 Console.WriteLine("test not Exists");
47             }
48 
49             Console.ReadLine();
50 
51             mc.Delete("test");  //移除缓存中key为test的项目
52 
53             if (mc.KeyExists("test"))
54             {
55                 Console.WriteLine("test is Exists");
56                 Console.WriteLine(mc.Get("test").ToString());
57             }
58             else
59             {
60                 Console.WriteLine("test not Exists");
61             }
62             Console.ReadLine();
63             
64             SockIOPool.GetInstance().Shutdown();  //关闭池, 关闭sockets
65         }
66     }
67 }

1. Memcached版本:Memcached Win32 1.2.6,下载地址:http://code.jellycan.com/memcached/

2. 以管理员身份进入命令行,运行安装命令:memcached -d install -p 8189 -m 256 -c 2048
参数说明:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

3. 出现错误:This application has failed to start because MSVCR71.dll was not found. Re-installing the application may fix this problem.
解决方法:继续到http://code.jellycan.com/memcached/下载memcached 1.2.5,解压后将其中的msvcr71.dll文件复制到刚才的Memcached Win32 1.2.6目录中。

4. 继续运行安装命令,安装成功,但发现后面的参数(-p 8189 -m 256 -c 2048)并没有加到服务的运行命令中。解决方法:打开注册表,找到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server, 在其中有一个ImagePath项,值为"d:\memcached\memcached.exe" -d runservice,在后面加上-p 8189 -m 256 -c 2048。
5. 启动服务,安装完成。

时间: 2024-08-01 21:08:40

Windows Server 2008安装Memcached笔记的相关文章

Windows Server 2008 安装Exchange 2007 SP3

1.准备工作 Win_S801: 系统:Windows Server 2008 主机名:mail07.laohe912.com ip:192.168.153.203 其他:域控制器,DNS服务器 步骤1-4都有相关帮助,此处不做提示 安装exchange,必须安装IIS 进入"服务管理器",添加角色,选择安装如下功能组件 最后确认安装IIS 正式安装Exchange 根据各自需要选择安装 我选择前三项,管理工具必装,其他三项冲突,不可安装 根据实际情况选择 然后会验证服务器环境,根据提

Windows Server 2008安装配置FTP全过程

Windows Server 2008安装配置FTP全过程 http://www.2cto.com/os/201201/116342.html Windows Server 2008安装配置FTP全过程,布布扣,bubuko.com

Windows Server 2008安装域服务

先决条件,设置为固定IP   1.打开"服务管理器":右键"计算机"-"管理" 2.角色-添加角色 4.安装完成以后 开始-运行-"dcpromo.exe"或者点击如图位置 此处我们以laohe912.com为FQDN为例 林功能级别 此处选择"Windows Server 2008" 假如还有其他域控制器要加入到该林中,则这些域控制器必须运行在Windows server 2008及以上 一次类推 这是第

windows server 2008 安装Microsoft ActiveSync 6.1提示缺少一个Windows Mobile设备中心所需要的Windows组件

windows server 2008 安装WinCE的同步软件,需要安装Microsoft ActiveSync 6.1版本的. 而不能安装ActiveSync|Microsoft ActiveSync 4.5 版本的. 另外我们在安装时老是弹出对话框提示缺少一个Windows Mobile设备中心所需要的Windows组件. 因为Windows 2008系统没有开启桌面体验功能,所以会发生这个问题. 开启桌面体验功能的方法如下: 一:单击"开始"菜单→"运行"命

Windows Server 2008安装SQL Server 2008

Windows Server 2008安装SQL Server 20081,将SQL 2008软件包软件包下载下来,并解压一下,运行setup2.安装.net,点击安装,点击全新安装或向现有安装添加功能 3,全部通过后,点击确定4,输入产品密钥,点击下一步5,勾选我接受许可条款,点击下一步6,点击安装7,点击下一步 8,全选,下一步9,操作完成,点击下一步10,可以根据需要更改,这里选择默认,下一步11,下一步继续12,可以指定NETWORK SERVICE为账户名,点击下一步13,选择混合模式

Windows Server 2008安装与基本配置

工作任务描述 HT公司接到一个项目:HW公司要部署windows server 2008 ,要在新机器上安装2008. 项目要求: 1.服务器上有1块CPU:1G内存:利用局域网连接服务器网络(host-only网络):两块scsi磁盘,每一块磁盘30G硬盘空间: 2.每一块磁盘之分一个主分区,在C盘上安装Windows Server 2008 工作任务实施 1. 使用虚拟机部署服务器的基本环境,1块CPU:1G内存:利用局域网连接服务器网络(host-only网络):两块scsi磁盘,每一块磁

windows server 2008安装 (VM)

1:新建一个虚拟机 2:设置第一个磁盘分 3:给虚拟机加第二个scsi磁盘 4:从c盘选择镜像路径并进行安装windows server 2008 5:选择服务器核心安装 6:分盘并选择安装盘 7:完成安装

windows server 2008 安装 Exchange 2010

网络环境: 两台windows server 2008 R2 standard服务器. 一套Exchange server 2010 sp2软件安装包. 域服务器: IP地址: 192.168.31.238 子网掩码: 255.255.255.0 网关地址: 192.168.31.1 DNS地址: 192.168.31.1 Exchange 服务器: IP地址:  192.168.31.226 子网掩码:255.255.255.0 地址网关:192.168.31.1 DNS地址: 192.168

windows server 2008 安装

工作任务描述 HT公司接到一个项目:HW公司要部署windows server 2008 ,要在新机器上安装2008. 项目要求: 1.服务器上有1块CPU:1G内存:利用局域网连接服务器网络(host-only网络):两块scsi磁盘,每一块磁盘30G硬盘空间: 2.每一块磁盘之分一个主分区,在C盘上安装Windows Server 2008. (1)开始安装 (2)磁盘分区 (3)正在安装 (4)选择操作系统 (5)完成安装 (6)在c盘安装 思考并回答问题 1.Windows Server