使用缓存Memcache存储access_token
接上篇文本,千辛万苦终于拿到了access_token。
正常情况下access_token有效期为7200秒,重复获取将导致上次获取的access_token失效。目前,获取access_token接口的调用频率限制为2000次/天。
所以我们将把它存起来,对于access_token的存储,可以考虑存储在文件、数据库或内存中。
这里我们就使用缓存Memcache存储及更新access_token(Memcache是一个高性能的分布式的内存对象缓存系统,将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。)
在 1.4.5 版本以前 memcached 可以作为一个服务安装,由于公司项目使用的就是1.4.5之前的版本,下载好解压,复制到你的服务器

C:\Users\Administrator\Desktop\memcached\memcached.exe -d install

服务里面会多一个memcached的服务,然后
C:\Users\Administrator\Desktop\memcached\memcached.exe -d start 或者右键启动
Memcache就装好了。
然后做为一个前端开发,就要去写后端代码了,首先引入依赖的dll

后端语言c#
public class WxCache
{
public string access_token { get;set;}
public int expires_in { get;set;}
}
public string GetToken() {
//因为服务是装在服务器上的,这里的ip就写127.0.0.1,端口是默认的11211
//可以改,没试到就不说了,大家自行百度
//这里的MemCache已经是封装过后的,做了一些初始化配置
MemCache cache = new MemCache(new[] { "127.0.0.1:11211" }, "");
//判断是否有token,没有就发请求
if(string.IsNullOrEmpty(cache.Get<string>("token"))){
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("获取token的url");
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
var result = JsonConvert.DeserializeObject<WxCache>(retString);
myStreamReader.Close();
myResponseStream.Close();
//拿到的数据反序列化,token存起来
//MemCache可以设置过期时间,这里设置的是1个半小时
cache.Set("token", result.access_token, DateTime.Now.AddMinutes(90));
return result.access_token;
}
else {
//一个半小时内缓存还在,就用没有过期的token
return cache.Get<string>("token");
}
}
结束,接下来就可以拿着access_token在前端做些事情了。
使用缓存Memcache存储access_token的更多相关文章
- 使用缓存Memcache存储更新微信access token
关键字:Memcache access_token 更新 存储 7200 本文介绍如何使用缓存Memcache存储及更新 access token的方法. 一.Access Token access_ ...
- 高性能文件缓存key-value存储—Memcached
1.高性能文件缓存key-value存储—Redis 2.ASP.NET HttpRuntime.Cache缓存类使用总结 备注:三篇博文结合阅读,简单理解并且使用,如果想深入学习,请多参考文章中给出 ...
- memcache 存储单个KEY,数据量过大的时候性能慢!以及简单的memcache不适合用到的场景
今天有人问到我:memcache存储大数据量,10K,100K,1M的时候,效果怎么样??我回答:不好,效果非常慢.对方问:为什么啊??我回答不上来...于是就找了点资料. memcached使用需要 ...
- 实现基于Memcache存储的Session类
自主实现Session功能的类,基于文件方式存储Session数据,测试基本通过,还比较好玩,实际应用没有意义,只不过是学习Session是如何实现的. 使用基于文件的Session存取瓶颈可能都是在 ...
- python运维开发(十一)----python操作缓存memcache、redis
内容目录: 缓存 memcache redis memcache Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数 ...
- Memcache存储大量数据的问题
Memcache存储大数据的问题 huangguisu Memcached存储单个item最大数据是在1MB内,假设数据超过1M,存取set和get是都是返回false,并且引起性能的问题. 我们之 ...
- Memcache存储机制与指令汇总
1.memcache基本简介 memcached是高性能的分布式内存缓存服务器.一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度.提高可扩展性. Memcach ...
- ASP.NET MVC用户登录(Memcache存储用户登录信息)
一.多站点共享用户信息解决方案: 采用分布式缓存Memcache模拟Session进行用户信息信息共享 1.视图部分
- 分布式缓存Memcache和Redis
引言 针对于如今计算机的CPU和网络设施,相应用程序来说,运行效率的瓶颈.已经不是代码的长度(实现同一个功能)和带宽了,而是,代码訪问资源的过程.即:让我们的程序慢下来的罪魁祸首就是IO操作. 程序从 ...
随机推荐
- Hibernate第五篇【inverse、cascade属性详解】
前言 上一篇博文已经讲解了一对多和多对一之间的关系了,一对多和多对一存在着关联关系(外键与主键的关系).本博文主要讲解Inverse属性.cascade属性.这两个属性对关联关系都有影响 Invers ...
- spring jar包
org.springframework.aop- 3.0.0.RELEASE--------------------Spring的面向切面编程,提供AOP(面向切面编程)实现 org.springfr ...
- snmp之GenericAddress
GenericAddress 注册地址类型,而不是默认的,第一次调用解析(java.lang.String的)方法之前,设置系统属性ADDRESS_TYPES_PROPERTIES. 这个类涉及到了工 ...
- django ajax练习
这几天遇到了django ajax请求出错的问题,总结一下 前端js:我这里创建的是一个字典格式的数据,前端js收到字典之后也是要用字典的形式去解包后台传送过来的数据,比如我下面的写法:data['s ...
- PHP和JS判断变量是否定义
PHP中: 通过isset(变量名)来判断,定义返回true/未定义返回false JS中: 通过typeof来判断.
- SVN初体验
呐,部门领导要求今后项目部分内容要实行版本控制,因此有机会深入接触下SVN这门功课 ---------------------------------------------------------- ...
- jQuery实现web页面固定列表搜索
1.需求分析:现在有一个数据展示列表页面,列表内容固定,使用jQuery在固定的列表中实现搜索功能. 2.核心代码: <!-- 添加jquery库 --> <script type= ...
- iOS开发注意事项(一)
1.OC的消息机制与C++等的函数(方法)有很大的不同,OC在运行时所执行的代码由运行环境来决定,而C++等则由编译器决定.如果调用的函数是多态的,C++在运行时要按照虚方法表来查出到底执行哪个函数, ...
- Android 性能测试之方向与框架篇
假期结束,你的状态有没有回归?那么,放空脑袋后,先来学习学习,欢迎大家继续关注腾讯云技术社区. 作者:李帅 导语 借项目的开发周期,把思考了一段时间的场景化性能测试框架搭建起来,包括 耗电性能测试.内 ...
- DevOps之存储和数据库
唠叨话 关于德语噢屁事的知识点,仅提供专业性的精华汇总,具体知识点细节,参考教程网址,如需帮助,请留言. <数据(Data)> 了解有关数据部分.涉及存储及数据库的概念:知识与技能的层次( ...