首页
学习
活动
专区
工具
TVP
发布

蘑菇先生的技术笔记

专栏成员
75
文章
97698
阅读量
28
订阅数
那些年我们一起追过的缓存写法(三)
     上篇介绍了多级缓存,本章详细介绍下内存缓存该如何设计。 阅读目录: 分析设计 O(1)LRU实现 过期删除策略 总结 分析设计 假设有个项目有比较高的并发量,要用到多级缓存,如下: 在实际设
蘑菇先生
2018-05-21
1K0
Redis系列(三)-Redis发布订阅及客户端编程
阅读目录 发布订阅模型 Redis中的发布订阅 客户端编程示例 0.3版本Hredis 发布订阅模型 在应用级其作用是为了减少依赖关系,通常也叫观察者模式。主要是把耦合点单独抽离出来作为第三方,隔离易变化的发送方和接收方。 发送方:只负责向第三方发送消息。(杂志社把读者杂志交给邮局) 接收方:被动接收消息。(1:向邮局订阅读者杂志,2:门口去接邮过来的杂志) 第三方作用是:存储订阅杂志的接收方,并在杂志过来时送给接收方。 (邮局) C#示例,发送方把杂志放到邮局里面: if (QA.AddB
蘑菇先生
2018-05-21
7310
探索c#之一致性Hash详解
阅读目录: 使用场景 算法原理 虚拟节点 代码示例 使用场景 以Redis为例,当系统需要缓存的内容超过单机内存大小时,例如要缓存100G数据,单机内存仅有16G时。这时候就需要考虑进行缓存数据分片,也即是把100G的数据拆分成多块小于单机内存的数据。例如以10G为单位,拆分10份,存储到多台机器节点上。 但是数据怎么个分法更合理呢? 、 f(key)%n 这里配置n=10,不同的key根据数值余数映射到对应的机器。 很简单的办法就解决了多台节点key分法的问题。然而数据大小的增长和缩减是很难预知的, 如果
蘑菇先生
2018-05-21
7930
探索C#之虚拟桶分片
阅读目录 背景 虚拟桶(virtual buckets) 实现 总结 背景 关于数据分片讨论最多的是一致性hash,然而它并不是分布式设计中的银弹百试百灵。 在数据稳定性要求比较高的场景下它的缺点是不能容忍的。 比如在Redis分布式缓存设计中,使用一致性Hash进行key分片存储,通过虚拟节点最大化降低添加或删除节点带来的影响。这里强调降低二字,即是它还是有影响的,在一般情况下我们还可以接受。 但是某些场景下要求动态扩容无影响就无法满足了。 上次(探索c#之一致性Hash详解)提到过Hash取
蘑菇先生
2018-05-21
9000
64位进程池HashCode兼容处理
背景 net旧项目使用32位生成的HashCode,存储到数据库中。迁移到64位上,就需要对HashCode做兼容处理。 解决方案 1:进程池配置支持32位程序。 2:对Hashcode做兼容处理,【推荐】。 兼容实现 static void Main(string[] args) { string test = "hello"; //-327419862 64位下 //-695839 32位下
蘑菇先生
2018-05-21
6850
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档