C#操作Memcache
来源:互联网 发布:ios优酷网络连接失败 编辑:程序博客网 时间:2024/05/16 19:35
软件从单机到分布式
走向分布式就要解决:多台机器共享登录信息的问题。
解决1:AspNet 进程外的Session。
解决2:用数据库存储当前登录状态。
解决3:Memcache 【性能最好,类似的:Redis,NoSql】
memcache 是一个分布式的缓存系统,但是本身没有提供集群功能,数据也是键值对存储Memcache服务器端并没有提供集群功能,但是通过客户端的驱动程序实现了集群配置
why memcache ?
1,高并发访问数据库的痛楚:死锁!
2磁盘IO之痛:
3多客户端共享缓存
4Net + Memory >> IO
5读写性能完美 1s:读取可以1w次。 写:10w
6超简单集群搭建
7开源 Open Source
8没有提供主从赋值功能,也没提供容灾等功能,所以所有的代码基本都只是考虑性能最佳。(Redis)
9学习成本非常低,入门非常容易
memcache搭建小例子
下载Memcache
安装服务:cmd→Memcached.exe -d install
启动服务:cmd→Memcached.exe -d start
检查服务是否启动:连接到Memcache控制台:telnet ServerIP 11211 输入命令:stats检查当前服务状态。
C#操作Memcache代码
1.添加程序集引用
http://sourceforge.net/projects/memcacheddotnet/
将Commons.dll,ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll 等放到bin目录
2. 引用Memcached.ClientLibrary.dll
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" };//ip地址
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("------------测 试Memcache----------");
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(); //关闭池
65 }
66 }
67 }
- C#操作Memcache
- C# memcache
- C# memcache
- memcache操作
- Memcache mysql触发器操作memcache
- memcache(二)php操作memcache
- php操作memcache总结
- Php操作memcache
- php 操作 memcache 使用
- memcache的操作
- Memcache的操作命令
- memcache(使用telnet操作)
- memcache(使用telnet操作)
- memcache(使用telnet操作)
- memcache写操作性能
- PHP操作Memcache
- memcache-clinet操作
- Memcache 操作类
- Windows下mklink使用, 硬链接, 软链接和快捷方式的区别
- linux安装mysql出现Could NOT find Curses (missing CURSES_LIBRARY CURSES_INCLUDE_PATH),提示解决方法
- 杭电1422 重温世界杯
- 二维树状数组
- 前台进程与后台进程
- C#操作Memcache
- onConfigurationChanged
- JasperReport学习笔记4-查询数据库生成动态的报表(WEB)
- javascript必知必会之this关键字及scope
- js解析json的eval函数
- 继承的特性
- 开始翻译Telepresence
- LeetCodeOJ_217_Contains Duplicate
- java 对map进行排序