惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Cisco Talos Blog
Cisco Talos Blog
P
Privacy & Cybersecurity Law Blog
I
Intezer
Y
Y Combinator Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
N
Netflix TechBlog - Medium
The Hacker News
The Hacker News
AWS News Blog
AWS News Blog
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Stack Overflow Blog
Stack Overflow Blog
Hacker News: Ask HN
Hacker News: Ask HN
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
B
Blog
T
Tor Project blog
C
Cybersecurity and Infrastructure Security Agency CISA
云风的 BLOG
云风的 BLOG
博客园_首页
V2EX - 技术
V2EX - 技术
T
Threat Research - Cisco Blogs
腾讯CDC
宝玉的分享
宝玉的分享
博客园 - 叶小钗
罗磊的独立博客
S
Securelist
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
Scott Helme
Scott Helme
博客园 - 司徒正美
W
WeLiveSecurity
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Secure Thoughts
NISL@THU
NISL@THU
N
News and Events Feed by Topic
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
K
Kaspersky official blog
IT之家
IT之家

博客园 - Snow*Cao

request 生命周期及参数信息 vs2010 调试快捷键 温故而知新:封装、继承、多态 海量的jQuery插件帖,很经典 委托事件的理解(转载) 常用JQuery插件整理 关于数据挖掘的详细介绍的一些网址 DropDownList 默认展示从数据库查询的值 Python 开发环境搭建 WCF优秀资源整理--持续更新 Python入门视频教程 txt文本导入到sql server数据库 抽象基类与接口,共性与个性的选择!(区别) C#中值类型和引用类型 通过IIS自带工具Iisapp.vbs查询哪个站点占用资源 主键与外键 HttpHandlers和HttpModules接口详解 ASP.NET页面运行机制 jquery跨域获取数据以及分页 - Snow*Cao - 博客园
分布式缓存BeIT Memcached简介
Snow*Cao · 2011-02-12 · via 博客园 - Snow*Cao

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的使用

或许你还没有用到过分布式缓存,在web集群的情况下,它可以很好的让一部分常用数据常驻服务器内存而不用担心各台web不同步。
下面稍微介绍一下memcached对于.net的支持,官方参考
http://code.google.com/p/beitmemcached/

一个完整的操作步骤:
1、点击上面页面的downloads,把Memcached_1.2.5.zip 和BeITMemcached_source_2008_05_31.zip两个压缩包下在下来。
2、解压Memcached_1.2.5.zip ,它是memcached的服务器端。
3、把Memcached_1.2.5复制到你指定的做为缓存服务器的电脑上,比如叫做192.168.0.1。
4、cmd下运行类似命令 'd:\memcached\memcached.exe -d install' 安装服务器端,这时候它应该会出现在windows服务中
5、cmd下运行类似命令 'd:\memcached\memcached.exe -d start'启动服务,看服务器进程中是否有memcached进程。
6、确认服务器端口11211是否开放(防火墙设置中),否则其他机器无法访问
7、服务器端这时已经安装完毕、在其他机器上测试一下,cmd输入telnet 192.168.0.1 11211看能否登录。

8、解压BeITMemcached_source_2008_05_31.zip,它是.net 2.0开发的客户端,里面是全部源代码和一个调用示例。
9、用对应版本的vss打开项目,如果感兴趣就慢慢研究代码,不感兴趣就选择生成类库,编译一个BeITMemcached.dll出来。
10、新建一个控制台程序,引用BeITMemcached.dll,输入类似代码测试

using System;
using BeIT.MemCached;
namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            MemcachedClient.Setup("TestCache", new string[] { "192.168.0.1" });
            MemcachedClient cache = MemcachedClient.GetInstance("TestCache");
            cache.SendReceieveTimeout = 5000;
            cache.MinPoolSize = 1;
            cache.MaxPoolSize = 5;
            cache.Set("jinjazz", "剪刀");
            object obj = cache.Get("jinjazz");
            Console.WriteLine(obj);
            Console.Read();
        }
    }
}

一个分布式缓存的例子就这么简单,和操作hashtable基本上一样容易。

11、查看缓存运行状态,这个你需要熟悉一些memcached的基本命令
先在你机器上输入telnet 192.168.0.1 11211,进入telnet
摸黑输入stats,会出来如下结果,可能对你有用的我后面加了注释
STAT pid 2928
STAT uptime 139279
STAT time 1216258406
STAT version 1.2.5
STAT pointer_size 32
STAT curr_items 4
STAT total_items 6
STAT bytes 1052947
STAT curr_connections 2
STAT total_connections 10
STAT connection_structures 4
STAT cmd_get 13//读取13次
STAT cmd_set 6//设置6次
STAT get_hits 11//11次命中
STAT get_misses 2//2次失败
STAT evictions 0
STAT bytes_read 1053321
STAT bytes_written 6279461
STAT limit_maxbytes 67108864
STAT threads 1
END

12、结束。