Redis实战篇
开篇导读 实战篇内容: 短信登录 使用redis共享session来实现 商户查询缓存 理解缓存击穿,缓存穿透,缓存雪崩等问题 优惠卷秒杀 学会Redis的计数器功能, 结合Lua完成高性能的redis操作,同时学会Redis分布式锁的原理,包括Redis的三种消息队列 附近的商户 利用Redis的GEOHash来完成对于地理坐标的操作 UV统计 使用Redis来完成统计功能 用户签到 使用Redis的BitMap数据统计功能 好友关注 基于Set集合的关注、取消关注,共同关注等等功能 达人探店 基于List来完成点赞列表的操作,同时基于SortedSet来完成点赞的排行榜功能 1. 短信登录 1.1. 导入黑马点评项目 1.1.1. 导入SQL 1.1.2. 有关当前模型 手机或者app端发起请求,请求nginx服务器,nginx基于七层模型走的是HTTP协议,可以实现基于Lua直接绕开tomcat访问redis;也可以作为静态资源服务器,轻松扛下上万并发,...
Spring 事务失效场景:this 调用导致事务不生效的原因及解决方案
Spring 事务管理中 this 调用事务方法不生效的情况 原因概述: 在 Spring 中,事务管理是通过代理对象实现的。当在类内部使用 this 调用自身的带有 @Transactional 注解的方法时,实际上绕过了 Spring 的代理对象,导致事务拦截器无法触发,从而事务不生效。 错误示例: 1234567891011121314@Servicepublic class MyService { @Transactional public void outerMethod() { // 一些业务逻辑 this.innerMethod(); // 使用 this 调用方法,事务不会生效 } @Transactional public void innerMethod() { // 事务应该生效的业务逻辑 }} 在这个示例中,由于 outerMethod 中通过 this 直接调用了 innerMethod,Spring...
为什么在利用逻辑过期解决缓存击穿问题采用二重检查?
线程 n 在 m 刚释放锁的时刻到达,检测到缓存过期,尝试获取锁并成功拿到锁。但 n 在拿到锁后,没有意识到缓存已经被 m 重建,因为在获取锁之前,n 看到的缓存依然是过期的。 这里我们可以再补充和澄清几个细节,帮助你更全面地理解这个过程: 1. n 拿到锁的时刻 当 m 线程持有锁并重建缓存时,其他线程(包括 n)会检测缓存的状态。 当 m 完成缓存重建并释放锁时,缓存已经被更新。 但 n 可能在缓存重建和锁释放的极短时间内(或者在重建缓存之前),检测到缓存依然过期,因此它会去竞争锁。 2. 为什么 n 没有察觉到缓存重建? 在并发编程中,锁与缓存是分开管理的: 锁的作用是防止多个线程同时进行重建操作。 缓存的更新操作是独立的,并且存在短暂的时间差:m 线程完成缓存重建后释放锁,但 n 可能在缓存的最新状态写入 Redis 之前就获取了锁。这就是为什么 n 仍然认为缓存是过期的。 简单来说,n 看到的缓存状态是在它获取锁之前检测的,这个状态是缓存已经过期。 3. 为什么要二重检查? 这就是为什么代码在 n...
Redis基础篇
Redis快速入门 Redis的常见命令和客户端使用 1.初识Redis Redis是一种键值型的NoSql数据库,这里有两个关键字: 键值型 NoSql 其中键值型,是指Redis中存储的数据都是以key、value对的形式存储,而value的形式多种多样,可以是字符串、数值、甚至json: 而NoSql则是相对于传统关系型数据库而言,有很大差异的一种数据库。 1.1.认识NoSQL NoSql可以翻译做Not Only Sql(不仅仅是SQL),或者是No Sql(非Sql的)数据库。是相对于传统关系型数据库而言,有很大差异的一种特殊的数据库,因此也称之为非关系型数据库。 1.1.1.结构化与非结构化 传统关系型数据库是结构化数据,每一张表都有严格的约束信息:字段名、字段数据类型、字段约束等等信息,插入的数据必须遵守这些约束: 而NoSql则对数据库格式没有严格约束,往往形式松散,自由。 可以是键值型: 也可以是文档型: 甚至可以是图格式: ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick Start Create a new post 1$ hexo new "My New Post" More info: Writing Run server 1$ hexo server More info: Server Generate static files 1$ hexo generate More info: Generating Deploy to remote sites 1$ hexo deploy More info: Deployment
hexo测试
shuoshuo_url: https://raw.githubusercontent.com/chenpibupi/test/97a92823e13838edd05fe9d7f21089afc7ca8def/shuoshuo.json
第一个
sdsdsd 66666666666 java # Disable all banner image disable_top_img: false git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly # Disable all banner image disable_top_img: false ‘’'java 123456\# Disable all banner imagedisable_top_img: falsegit clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly ‘’’






