会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
蘑菇先生
技术笔记。
博客园
首页
订阅
管理
上一页
1
2
3
4
5
下一页
2015年2月8日
那些年我们一起追过的缓存写法(三)
摘要: 上篇介绍了多级缓存,本章详细介绍下内存缓存该如何设计。阅读目录:分析设计O(1)LRU实现过期删除策略总结分析设计假设有个项目有比较高的并发量,要用到多级缓存,如下:在实际设计一个内存缓存前,需要考虑的问题:1:内存与Redis的数据置换,尽可能在内存中提高数据命中率,减少下一级的压力。2:内存...
阅读全文
posted @ 2015-02-08 08:45 蘑菇先生
阅读(12055)
评论(13)
推荐(20)
2015年2月1日
那些年我们一起追过的缓存写法(二)
摘要: 感谢园子里的同学对上一篇的支持,很高兴楼主的一些经验及想法能够对大家有一些帮助。上次主要讨论缓存读写这块各种代码实现,本篇就上次的问题继续来,看看那些年折腾过的各种缓存做法。阅读目录:缓存预热多级缓存线程缓存内存缓存文件缓存分布式缓存DB缓存多层缓存总结缓存预热上次有同学问过,在第一次加载时缓存都为...
阅读全文
posted @ 2015-02-01 10:39 蘑菇先生
阅读(12911)
评论(13)
推荐(20)
2015年1月25日
喵喵的技术学习之路(一)
摘要: 介绍发现纯写技术蛮无趣枯燥的,也不连贯,就突发奇想,在博客中加些生活的乐趣。主题呢就是讲一个程序员小菜鸟的学习成长,技术博客都融入到其中。背景如下:地点:平行世界中魔都一家公司,喵喵小菜鸟一枚,大四实习妹纸。蘑菇一神秘男子,人物纯属虚构。正文喵喵:蘑菇,三层架构是什么东东?蘑菇:简单来说,为了降低U...
阅读全文
posted @ 2015-01-25 15:28 蘑菇先生
阅读(3026)
评论(7)
推荐(6)
2015年1月24日
多线程中的锁系统(四)-谈谈自旋锁
摘要: 阅读目录:基础自旋锁示例SpinLock继续SpinLock总结基础内核锁:基于内核对象构造的锁机制,就是通常说的内核构造模式。用户模式构造和内核模式构造 优点:cpu利用最大化。它发现资源被锁住,请求就排队等候。线程切换到别处干活,直到接受到可用信号,线程再切回来继续处理请求。 缺...
阅读全文
posted @ 2015-01-24 20:41 蘑菇先生
阅读(9019)
评论(7)
推荐(2)
2015年1月19日
Net作业调度(五)—quartz.net动态添加job设计
摘要: 介绍在实际项目使用中quartz.net中,都希望有一个管理界面可以动态添加job,而避免每次都要上线发布。也看到有园子的同学问过。这里就介绍下实现动态添加job的几种方式, 也是二次开发的核心模块。阅读目录:传统方式框架反射方式进程方式URL方式框架配置方式传统方式继承IJob,实现业务逻辑,添加...
阅读全文
posted @ 2015-01-19 08:42 蘑菇先生
阅读(25457)
评论(40)
推荐(27)
2015年1月18日
Net作业调度(四)—quartz.net持久化和集群
摘要: 介绍在实际使用quartz.net中,持久化能保证实例重启后job不丢失、 集群能均衡服务器压力和解决单点问题。quartz.net在这两方面配置都比较简单。持久化quartz.net的持久化,是把job、trigger一些信息存储到数据库里面,以解决内存存储重启丢失。下载sql脚本 htt...
阅读全文
posted @ 2015-01-18 15:17 蘑菇先生
阅读(21622)
评论(25)
推荐(15)
2015年1月12日
c#实现redis客户端(一)
摘要: 最近项目使用中要改造redis客户端,看了下文档,总结分享一下。阅读目录:协议规范基础通信状态命令set、get命令管道、事务总结协议规范redis允许客户端以TCP方式连接,默认6379端口。传输数据都以\r\n结尾。请求格式*\r\n$\r\n\r\n例:*1\r\n$4\r\nINFO\r\...
阅读全文
posted @ 2015-01-12 08:55 蘑菇先生
阅读(28142)
评论(6)
推荐(15)
2015年1月10日
多线程中的锁系统(三)-WaitHandle、AutoResetEvent、ManualResetEvent
摘要: 本章主要介绍下基于内核模式构造的线程同步方式,事件,信号量。阅读目录:理论WaitHandleAutoResetEventManualResetEvent总结理论Windows的线程同步方式可分为2种,用户模式构造和内核模式构造。内核模式构造:是由Windows系统本身使用,内核对象进行调度协助...
阅读全文
posted @ 2015-01-10 08:45 蘑菇先生
阅读(10178)
评论(3)
推荐(7)
2015年1月4日
那些年我们一起追过的缓存写法(一)
摘要: 本篇主要介绍下楼主平常项目中,缓存使用经验和遇到过的问题。阅读目录:基本写法缓存雪崩全局锁,实例锁字符串锁缓存穿透再谈缓存雪崩总结基本写法为了方便演示,这里使用Runtime.Cache做缓存容器,并定义个简单操作类。如下: public class CacheHelper { ...
阅读全文
posted @ 2015-01-04 08:36 蘑菇先生
阅读(37878)
评论(106)
推荐(134)
2015年1月1日
多线程中的锁系统(二)-volatile、Interlocked、ReaderWriterLockSlim
摘要: 上章主要讲排他锁的直接使用方式。但实际当中全部都用锁又太浪费了,或者排他锁粒度太大了,本篇主要介绍下升级锁和原子操作。阅读目录volatileInterlockedReaderWriterLockSlimvolatile简单来说volatile关键字是告诉c#编译器和JIT编译器,不对volat...
阅读全文
posted @ 2015-01-01 23:16 蘑菇先生
阅读(9821)
评论(4)
推荐(2)
2014年12月21日
多线程中的锁系统(一)-基础用法
摘要: 平常在多线程开发中,总避免不了线程同步。本篇对net多线程中的锁系统做个简单描述。阅读目录:lock、Monitor作用域范围字符串锁Monitor的用法MutexSemaphore总结lock、MonitorLock是Monitor语法糖简化写法,Lock在IL会生成Monitor。 ...
阅读全文
posted @ 2014-12-21 22:55 蘑菇先生
阅读(21591)
评论(7)
推荐(15)
2014年12月13日
日志系统实战(三)-分布式跟踪的Net实现
摘要: 介绍在大型系统开发调试中,跨系统之间联调开始变得不好使了。莫名其妙一个错误爆出来了,日志虽然有记录,但到底是哪里出问题了呢? 是Ios端参数传的不对?还是A系统或B系统提供的接口导致?相信有不少人遇到这种情况,大多数问题往往不大,但排查起来比较费劲。下面介绍下怎么通过上下文跟踪的方法,最快定位到其问...
阅读全文
posted @ 2014-12-13 20:16 蘑菇先生
阅读(12783)
评论(15)
推荐(19)
2014年11月27日
日志系统实战(二)-AOP动态获取运行时数据
摘要: 介绍这篇距上一篇已经拖3个月之久了,批评自己下。通过上篇介绍了解如何利用mono反射代码,可以拿出编译好的静态数据、例如方法参数信息之类的。但实际情况是往往需要的是运行时的数据,就是用户输入等外界的动态数据。既然是动态的,那就是未知的,怎么通过提前注入的代码获取呢!阅读目录:普通写法注入定义Weav...
阅读全文
posted @ 2014-11-27 08:22 蘑菇先生
阅读(8486)
评论(8)
推荐(11)
2014年11月25日
c#语言-高阶函数
摘要: 介绍如果说函数是程序中的基本模块,代码段,那高阶函数就是函数的高阶(级)版本,其基本定义如下:函数自身接受一个或多个函数作为输入。函数自身能输出一个函数,即函数生产函数。满足其中一个条件就可以称为高阶函数。高阶函数在函数式编程中大量应用,c#在3.0推出Lambda表达式后,也开始逐渐使用了。阅读目...
阅读全文
posted @ 2014-11-25 09:21 蘑菇先生
阅读(3572)
评论(0)
推荐(0)
2014年11月17日
Net作业调度(三) — Quartz.Net进阶
摘要: 介绍前面介绍Quartz.Net的基本用法,但在实际应用中,往往有更多的特性需求,比如记录job执行的执行历史,发邮件等。阅读目录Quartz.Net插件TriggerListener,JobListenerCron表达式Quartz.Net线程池总结Quartz.Net插件 Quartz.net...
阅读全文
posted @ 2014-11-17 22:32 蘑菇先生
阅读(13104)
评论(4)
推荐(5)
上一页
1
2
3
4
5
下一页
公告