1. 缓存的基本思想 很多朋友,只知道缓存可以提高系统性能以及减少请求相应时间,但是,不太清楚缓存的本质思想是什么. 缓存的基本思想其实很简单,就是我们非常熟悉的空间换时间.不要把缓存想的太高大上,虽然,它的确对系统的性能提升的性价比非常高. 其实,我们在学习使用缓存的时候,你会发现缓存的思想实际在操作系统或者其他地方都被大量用到. 比如 CPU Cache 缓存的是内存数据用于解决 CPU 处理速度和内存不匹配的问题,内存缓存的是硬盘数据用于解决硬盘访问速度过慢的问题. 再比如操作系统在 页表…
反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑)   背景介绍: 为了平衡社区成员的贡献和索取,一起帮引入了帮帮币.当用户积分(帮帮点)达到一定数额之后,就会“掉落”一定数量的“帮帮币”.为了增加趣味性,帮帮币“掉落”之后所有用户都可以“捡取”,谁先捡到归谁. 但这样就产生了一个问题,因为这个“帮帮币”是可以买卖有价值的,所以难免会有恶意用户用爬虫不断的扫描,导致这样的情况出现: 注:经核实,乔布斯的同学 其实没有用爬虫,就是手工点,点出来的!还能说什么呢?只能表示佩服啊佩服……
线程内部缓存:a. 局部变量HashMap, 方法间传递  b. 使用ThreadLocal 本地缓存:单jvm内共享 可以使用(Concurrent)HashMap自己实现,也可以使用GuavaCache. guavaCache支持过期自动删除(全局的过期时间),垃圾回收, 回收通知... 远程缓存:多jvm共享     redis 主备切换 故障自动恢复, 单个key设置过期时间 memcached 一致性hash 扩容需要自己实现 业务逻辑如果允许本地缓存,就不要使用远程缓存…
Redis提供了高性能的数据存取功能,所以广泛应用在缓存场景中,既能有效地提升业务应用的响应速度,还可以避免把高并发压力发送到数据库层. 因为Redis用作缓存的普遍性以及它在业务应用中的重要作用,所以需要系统地掌握缓存的一系列内容,包括工作原理.替换策略.异常处理和扩展机制. 今天我们了解缓存的特征和Redis缓存的工作机制. 缓存特征 主要有两个特征: 一是在一个层次化的系统中,缓存一定是一个快速子系统,数据存在缓存中时,能避免每次从慢速子系统中存取数据. 二是缓存系统的容量大小总是小于后端…
绝对干货,总结了下C#面向对象的干货内容以及我几年来的使用心得,分享出来 先明确几个简单概念作为开胃菜: 1.命名空间 namespace BackStageManagement.Services 关键字用于声明包含一组相关对象的作用域. 可以使用命名空间来组织代码元素并创建全局唯一类型.命名空间下可以有很多类! 定义命名空间: namespace 空间名称{ 类 } 引入命名空间: using 空间名称 2.构造函数 构造函数分类 2.1.什么是构造方法? 首先它是一个方法,然后它具有“构造”…
目录 1. Redis集群 集群作用 主从复制 集群安装配置 集群数据同步及原理 2. Redis哨兵机制 master选举 哨兵sentinel的作用 哨兵sentinel之间的相互感知 master的故障发现 哨兵sentinel的配置 3. Redis-Cluster Redis的数据分区 Redis的HashTag Redis的数据节点重定向 新增节点组的数据迁移  本次集群搭建,使用了三台Linux虚拟机,IP地址分别为 128, 129, 130; Redis版本5.0.4; Tip…
现在的业务系统越来复杂,大型门户网站内容越来越多,数据库的数据量也越来愈大,所以有了“大数据”这一概念的出现.但是我们都知道当数据库的数据量和访问过于频繁都会影响系统整体性能体验,特别是并发量高的系统.为此,我们通过数据缓存来,减轻数据库的压力.为此,随着时间的步伐,各式各样的缓存技术的出现,让我们对于这些技术有些眼花缭乱.不是说功能最全的最先进,就是适合自己.我们要看看自己系统的定位去评估自己的系统适合使用哪种缓存机制.当然,也可以通过定义缓存接口,以后方便缓存机制的替换.下面我们来了解下缓存…
昨天晚上钓鱼回来,大发神经,写了篇概括程序员生活现状的文章,没想到招来众多人的口诛笔伐,大有上升到政治层面的趋势. 我也许不会再发表任何冲击心灵的文章,我希望给大家带来更多的正能量,所以那篇文章已被我删除. 我的本意只是想让各位看过文章之后能冷静地思考自己的程序人生,不管是对是错,人都有选择的权力,走好自己的路. 我没有你们想象中那么悲观,我也在不懈的努力,哪怕一时的跌倒,我也要重新站起. 生活无时无刻不是压力,让我们背起行囊,迈出踏实的一步,走起! 我们继续我们的 redis 缓存之旅. 前一…
集群技术是构建高性能网站架构的重要手段,试想在网站承受高并发访问压力的同时,还需要从海量数据中查询出满足条件的数据,并快速响应,我们必然想到的是将数据进行切片,把数据根据某种规则放入多个不同的服务器节点,来降低单节点服务器的压力. 上一篇我们讲到了 Redis 的主从复制技术,当实现了多节点的 master-slave 后,我们也可以把它叫做集群,但我们今天要讲的集群主要是利用切片技术来组建的集群. 集群要实现的目的是要将不同的 key 分散放置到不同的 redis 节点,这里我们需要一个规则或…
使用redis之前需要咋电脑上安装redis: 使用spring+mybaties+redis的本质是扩展类   org.apache.ibatis.cache.Cache:在我们自己扩展的Cache里面使用redis的api: 一:需要引入的依赖: <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId>…