好记性不如烂笔头,记录一下C#缓存使用的情景模式。。。。个人理解,不正之处,欢迎指正
讨论 Cookie,Session,Application,Cache 四种,有的缓存情景对人,有的缓存情景对事儿。Cookie,Session对人,每个客户端为主体(公交车上的乘客)。。Application,Cache对事儿,以对象为主体(公交车)
虽然之前写了Redis了,但是适合项目才是最正确的。 ( 存在即合理 ——鲁迅)
一:Cookie
储存在客户端上的缓存,在没有经过骚操作特殊处理的话,很不安全 我用Cookie存储了账号密码,那么别人就有到我账号的风险。。建议 把账号和密码用自己独特方式加密一下,搞点骚东西进去 安全第一。
总结Cookie缓存作用于客户端自己相对独立的数据,跟server端交互不频繁的数据(用户名,密码 ヽ(ー_ー)ノ )
二:Session
储存在服务端上的缓存,既然存在服务端,就会占用服务器资源啦 仁者见仁。 相对来说,是安全的,在微信环境,阿里沙箱环境里是可以使用的(会自动生成一个 Session Key ,你每次取值的时候,客户端和服务端都会Key值比较。。。所以Session只能你自己用)。 使用它可以存用户操作的数据,比如我不想把这个数据写入数据库,但是我还得使用它,或者说我在一个页面停留有痕迹信息,一个小时后我在进来,依然可以使用这个信息。不想存库的话,用Session很好解决。过期时间,自己考虑。。。┗( ▔, ▔ )┛
三:Application
对事儿的缓存。。 Key值对应上,谁都可以使用 储存在服务端,特点是永远都不会过期。 使用情景模式:share 缓存 共享,大家都可以使用。 (比如 坐公交车,大家都想知道车上坐的有哪些乘客 在不写数据库的情况下,你怎么知道车上都有谁嘞。Application就是用来解决这个问题的,上车一个人就存,下车就删了)。(ಥ_ಥ)
四:Cache
名副其实嘛 功能呢,比Application全面一点。举例子:Application没有过期时间限制,这个公交车发车了,空车它也跑,一直跑。。钢铁直男!直到服务重启,宕机,在我看来吧,就是个铁憨憨。( ̄ェ ̄;) 不喜欢。。cache就是升级版,可以设置过期时间。。使用很方便,跟Application不同的是,当要加入的缓存项已经在Cache中存在时,Insert将会覆盖原有的缓存项目,而Add则不会修改原有缓存项。。使用更方便 (✪ω✪)