Memcached的基本使用
Memcached是开源的,高效的,内存对象缓存系统。说白了,就是搞缓存用的。用于提升网站性能。是提升网站性能的第一手段。
其官网地址为:http://memcached.org/,然而官网的安装版本只有Linux下面的,没有Windows下面的,
那Windows下面的可以去这里下载:
下载之后,如何安装呢?
Memcached是一个服务,通过命令来安装,以管理员身份启动cmd,转到memcached.exe文件夹下。
执行安装命令: memcached.exe -d install
安装成功之后,在【服务】里面就可以看到新增了一个Memached的服务。
将此服务启动起来,memcached就算安装好了。
memcached默认端口为 11211 ,可以通过以下命令来修改:
设置端口和内存:memcached.exe -p 11211 -m 64
安装好之后,可以使用telnet来查看和操作 memcached
连接命令: telnet localhost 11211
查看状态:stats
清除缓存:flush_all
查看所有的key:stats items
另外附一下 stats 命令下的各状态描述
pid:32u,服务器进程ID。
uptime:32u, 服务器运行时间,单位秒。
time :32u, 服务器当前的UNIX时间。
version :string, 服务器的版本号。
curr_items :32u, 服务器当前存储的内容数量 Current number of items stored by the server
total_items :32u, 服务器启动以来存储过的内容总数。
bytes :64u, 服务器当前存储内容所占用的字节数。
curr_connections :32u, 连接数量。
total_connections :32u, 服务器运行以来接受的连接总数。
connection_structures:32u, 服务器分配的连接结构的数量。
cmd_get :32u, 取回请求总数。
cmd_set :32u, 存储请求总数。
get_hits :32u, 请求成功的总次数。
get_misses :32u, 请求失败的总次数。
bytes_read :64u, 服务器从网络读取到的总字节数。
bytes_written :64u, 服务器向网络发送的总字节数。
limit_maxbytes :32u, 服务器在存储时被允许使用的字节总数。
.NET下如何使用?
.NET下推荐使用 EnyimMemcached ,去 https://github.com/enyim/EnyimMemcached 下载源代码来编译生成 Enyim.Caching.dll 文件,
此项目中也有一个Demo示例。另外,上面下载的 Memached 的安装包中也有一个 enyim client lib 目录,里面也有此文件。
下载此文件之后,引入到项目中。
然后在配置文件中,添加如下配置:
此配置放在configuration节点下,最好是第一个节点
<configSections> <sectionGroup name="enyim.com"> <section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" /> </sectionGroup> </configSections> <enyim.com protocol="Binary"> <memcached> <servers> <!-- put your own server(s) here--> <add address="127.0.0.1" port="11211" /> <!--<clear /> <add address="172.16.172.130" port="20002" /> <add address="172.16.172.130" port="20004" /> <add address="172.16.172.130" port="20006" /> <add address="172.16.172.130" port="20008" />--> </servers> <socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00" /> </memcached> </enyim.com>
代码中如何调用:
MemcachedClient mc = new MemcachedClient(); ServerStats stats = mc.Stats(); //存入key:d1 value:admin 的键值对 mc.Store(StoreMode.Set, "d1", "admin"); //存入key:d2 value:true 的键值对,缓存时间30min mc.Store(StoreMode.Set, "d2", true, new TimeSpan(0, 30, 0)); User user = new User() { Id = 100, Accout = "admin100", Password = "000000", Name = "管理员100" }; //存入键值对的值为一个对象 mc.Store(StoreMode.Set, $"account_{user.Id}", user); User obj = mc.Get($"account_{user.Id}");
注意:上面的 User 类必须可以序列化, 即使用 [Serializable] 来修改 User 类。
*昵称:
*邮箱:
个人站点:
*想说的话: