分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

Memcache在.Net中的使用

发布时间:2023-09-06 01:53责任编辑:顾先生关键词:暂无标签

一、Memcache基本概念(socket服务器)

本质:是一个在内存上存储的hash表,key的最大值是255字符,最长过期时间为30天
特点:惰性删除,没有监控数据过期的机制,实现最基本的key-value存储,只要MemCache重启了,数据就会消失
搭建集群:通过客户端驱动实现集群的配置,MemCache集群之间不会相互通信
客户端实现集群的原理:在memcache配置多台服务器的ip和port的列表,客户端对key进行hash处理得到hashCode,这个hashCode对机器个数取余,把数据存在余数对应的机器上,读取时算法一样(简单余数法,扩容时有弊端,用redis替代比较好)

基本概念:MemCache是项目的名称, MemCached是MemCache服务器端可以执行文件的名称

 

二、使用方法:

  第1步:
  (管理员身份)cd memcache所在的文件夹
  安装: Memcached -d install
  启动: Memcached -d start
  卸载: Memcached -d stop
      Memcached -d uninstall
  第2步:
  添加引用 
         
 
下边是一个Memche的帮助类(忘记是从哪copy的,未标出处见谅)
 1 public static class MemcheHelper 2 ????{ 3 ????????static readonly MemcachedClient mc=null; 4 ????????static MemcheHelper() 5 ????????{ 6 ????????????//最好放在配置文件中 7 ????????????string[] serverlist = { "127.0.0.1:11211", "10.0.0.132:11211" }; 8 ?9 ????????????//初始化池10 ????????????SockIOPool pool = SockIOPool.GetInstance();11 ????????????pool.SetServers(serverlist);12 ????????????pool.InitConnections = 3;13 ????????????pool.MinConnections = 3;14 ????????????pool.MaxConnections = 5;15 ????????????pool.SocketConnectTimeout = 1000;16 ????????????pool.SocketTimeout = 3000;17 ????????????pool.MaintenanceSleep = 30;18 ????????????pool.Failover = true;19 ????????????pool.Nagle = false;20 ????????????pool.Initialize();21 22 ????????????// 获得客户端实例23 ????????????mc = new MemcachedClient();24 ????????????mc.EnableCompression = false;25 ????????}26 ????????/// <summary>27 ????????/// 这是添加的方法28 ????????/// </summary>29 ????????/// <param name="key"></param>30 ????????/// <param name="value"></param>31 ????????/// <returns></returns>32 ????????public static bool Set(string key,object value)33 ????????{34 ????????????return mc.Set(key, value);35 ????????}36 ????????public static bool Set(string key, object value,DateTime time)//指定过期时间,最大30天37 ????????{38 ????????????return mc.Set(key, value,time);39 ???????????40 ????????}41 ????????/// <summary>42 ????????/// 获取数据43 ????????/// </summary>44 ????????/// <param name="key"></param>45 ????????/// <returns></returns>46 ????????public static object Get(string key)47 ????????{48 ????????????return mc.Get(key);49 ????????}50 51 ????????/// <summary>52 ????????/// 删除数据53 ????????/// </summary>54 ????????/// <param name="key"></param>55 ????????/// <returns></returns>56 ????????public static bool Delete(string key)57 ????????{58 ????????????if (mc.KeyExists(key))59 ????????????{60 ???????????????return mc.Delete(key);61 ????????????}62 ????????????return false;63 ????????}64 ????}

  代码中简单使用

 static void Main(string[] args) ???????{ ???????????//添加,保存一天 ???????????MemcheHelper.Set("TestKey", "TestValue",DateTime.Now.AddDays(1)); ???????????//取值 ???????????MemcheHelper.Get("TestKey"); ???????????//删除 ???????????MemcheHelper.Delete("TestKey"); ???????}

Memcache在.Net中的使用

原文地址:https://www.cnblogs.com/wyy1234/p/9029639.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved